{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 00:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 00:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 00:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 00:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 00:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 00:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-01 00:00:06"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 00:16:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 00:16:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 00:16:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 00:16:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 00:16:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 00:16:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 00:16:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 00:16:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 00:16:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 00:16:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 00:16:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 00:16:24"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 00:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 00:58:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 00:58:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 00:58:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 00:58:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 00:58:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 00:58:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 00:58:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 00:58:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 00:58:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 00:58:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 00:58:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 00:58:24"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 01:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 01:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 01:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 01:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 01:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 01:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 01:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 01:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 01:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 01:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 01:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 01:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 01:50:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 01:50:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 01:50:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 01:50:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 01:50:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 01:50:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 01:50:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 01:50:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 01:50:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 01:50:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 01:50:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 01:50:29"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 02:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 02:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 02:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 02:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 02:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 02:19:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 02:19:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 02:19:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 02:19:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 02:19:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 02:19:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 02:19:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 02:19:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 02:19:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 02:19:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 02:19:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 02:19:19"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 02:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 02:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 02:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 02:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 02:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 02:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 02:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 02:41:30"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 02:41:30"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 02:41:30"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 02:41:30"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 02:41:30"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 02:41:30"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 02:41:30"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 02:41:30"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 02:41:30"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 02:41:30"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 02:41:30"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 02:41:30"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 03:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 03:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 03:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 03:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 03:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 03:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 03:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 03:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 03:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 03:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 03:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 03:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:00:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 03:27:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 03:27:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 03:27:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 03:27:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 03:27:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 03:27:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 03:27:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 03:27:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 03:27:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 03:27:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 03:27:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 03:27:38"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 03:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 03:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 03:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 03:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 03:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 03:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 03:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 03:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 03:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 03:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 03:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 03:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 03:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 03:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 03:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 03:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 03:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 03:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 03:42:22"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 04:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 04:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 04:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 04:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 04:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:00:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:00:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:00:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:00:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:00:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:00:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:00:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:00:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:00:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:00:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:00:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:00:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:21:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:21:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:21:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:21:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:21:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:21:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:21:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:21:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:21:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:21:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:21:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:21:47"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 04:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 04:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 04:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 04:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 04:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 04:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 04:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:50:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:50:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:50:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:50:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:50:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 04:50:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:50:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:50:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:50:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:50:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:50:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 04:50:36"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 05:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 05:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 05:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 05:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 05:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 05:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 05:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 05:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 05:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 05:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 05:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 05:30:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:35:28"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:35:28"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:35:28"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:35:28"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:35:28"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:35:28"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:35:28"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:35:28"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:35:28"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:35:28"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:35:28"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:35:28"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:57:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:57:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:57:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:57:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:57:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 05:57:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:57:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:57:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:57:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:57:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:57:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 05:57:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 06:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 06:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 06:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 06:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 06:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:05:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:05:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:05:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:05:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:05:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:05:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:05:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:05:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:05:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:05:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:05:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:05:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:10:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:10:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:10:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:10:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:10:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:10:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:10:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:10:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:10:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:10:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:10:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:10:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 06:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 06:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 06:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 06:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 06:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 06:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 06:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:46:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:46:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:46:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:46:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:46:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:46:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:46:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:46:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:46:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:46:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:46:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:46:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:50:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:50:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:50:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:50:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:50:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 06:50:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:50:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:50:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:50:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:50:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:50:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 06:50:26"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 07:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 07:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 07:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 07:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 07:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:25:40"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 07:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:35:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:35:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:35:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:35:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:35:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:35:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:35:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:35:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:35:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:35:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:35:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:35:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:42:08"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:42:08"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:42:08"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:42:08"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:42:08"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:42:08"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:42:08"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:42:08"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:42:08"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:42:08"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:42:08"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:42:08"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:44:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:44:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:44:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:44:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:44:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:44:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:44:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:44:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:44:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:44:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:44:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:44:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:44:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:44:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:44:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:44:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:44:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 07:44:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:44:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:44:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:44:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:44:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:44:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 07:44:26"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 08:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 08:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 08:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 08:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 08:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 08:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 08:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 08:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 08:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 08:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 08:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 08:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:00:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:18:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:18:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:18:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:18:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:18:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:18:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:18:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:18:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:18:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:18:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:18:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:18:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:20:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:20:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:20:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:20:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:20:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:20:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:20:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:20:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:20:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:20:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:20:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:20:36"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 08:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:31:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:31:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:31:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:31:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:31:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:31:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:31:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:31:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:31:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:31:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:31:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:31:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:40:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:40:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:40:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:40:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:40:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:40:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:40:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:40:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:40:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:40:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:40:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:40:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:59:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:59:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:59:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:59:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:59:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 08:59:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:59:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:59:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:59:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:59:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:59:29"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 08:59:29"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 09:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 09:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 09:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 09:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 09:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 09:23:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 09:23:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 09:23:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 09:23:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 09:23:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 09:23:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 09:23:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 09:23:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 09:23:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 09:23:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 09:23:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 09:23:33"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 09:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 09:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 09:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 09:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 09:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 09:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 09:30:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 09:31:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 09:31:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 09:31:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 09:31:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 09:31:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 09:31:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 09:31:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 09:31:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 09:31:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 09:31:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 09:31:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 09:31:23"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 10:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 10:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 10:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 10:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 10:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 10:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 10:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 10:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 10:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 10:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 10:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 10:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:00:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 10:12:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 10:12:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 10:12:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 10:12:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 10:12:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 10:12:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 10:12:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 10:12:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 10:12:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 10:12:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 10:12:55"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 10:12:55"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 10:30:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 11:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 11:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 11:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 11:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 11:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 11:04:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 11:04:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 11:04:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 11:04:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 11:04:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 11:04:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 11:04:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 11:04:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 11:04:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 11:04:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 11:04:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 11:04:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 11:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 11:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 11:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 11:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 11:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 11:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 11:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 11:43:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 11:43:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 11:43:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 11:43:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 11:43:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 11:43:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 11:43:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 11:43:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 11:43:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 11:43:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 11:43:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 11:43:26"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 12:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 12:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 12:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 12:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 12:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 12:13:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 12:13:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 12:13:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 12:13:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 12:13:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 12:13:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 12:13:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 12:13:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 12:13:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 12:13:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 12:13:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 12:13:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 12:22:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 12:22:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 12:22:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 12:22:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 12:22:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 12:22:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 12:22:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 12:22:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 12:22:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 12:22:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 12:22:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 12:22:10"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 12:30:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 13:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 13:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 13:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 13:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 13:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 13:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:00:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:01:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:01:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:01:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:01:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:01:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:01:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:01:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:01:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:01:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:01:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:01:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:01:42"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 13:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:32:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:32:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:32:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:32:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:32:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:32:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:32:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:32:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:32:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:32:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:32:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:32:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:40:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:40:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:40:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:40:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:40:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 13:40:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:40:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:40:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:40:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:40:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:40:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 13:40:22"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 14:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 14:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 14:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 14:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 14:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 14:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 14:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 14:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 14:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 14:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 14:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 14:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 14:38:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 14:38:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 14:38:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 14:38:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 14:38:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 14:38:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 14:38:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 14:38:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 14:38:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 14:38:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 14:38:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 14:38:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 14:57:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 14:57:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 14:57:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 14:57:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 14:57:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 14:57:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 14:57:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 14:57:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 14:57:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 14:57:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 14:57:10"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 14:57:10"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 15:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 15:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 15:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 15:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 15:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 15:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 15:49:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 15:49:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 15:49:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 15:49:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 15:49:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 15:49:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 15:49:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 15:49:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 15:49:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 15:49:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 15:49:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 15:49:45"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 16:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 16:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 16:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 16:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 16:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 16:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 16:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 16:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 16:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 16:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 16:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 16:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:00:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 16:14:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 16:14:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 16:14:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 16:14:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 16:14:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 16:14:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 16:14:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 16:14:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 16:14:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 16:14:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 16:14:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 16:14:16"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 16:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 16:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 16:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 16:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 16:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 16:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 16:30:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 16:35:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 16:35:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 16:35:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 16:35:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 16:35:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 16:35:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 16:35:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 16:35:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 16:35:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 16:35:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 16:35:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 16:35:22"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 17:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 17:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 17:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 17:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 17:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:12:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:12:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:12:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:12:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:12:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:12:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:12:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:12:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:12:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:12:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:12:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:12:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:25:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:25:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:25:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:25:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:25:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:25:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:25:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:25:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:25:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:25:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:25:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:25:15"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 17:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:57:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:57:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:57:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:57:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:57:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 17:57:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:57:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:57:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:57:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:57:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:57:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 17:57:02"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 18:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 18:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 18:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 18:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 18:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 18:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:32:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:32:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:32:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:32:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:32:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:32:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:32:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:32:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:32:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:32:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:32:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:32:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:47:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:47:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:47:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:47:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:47:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:47:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:47:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:47:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:47:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:47:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:47:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:47:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:53:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:53:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:53:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:53:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:53:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 18:53:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:53:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:53:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:53:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:53:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:53:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 18:53:03"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 19:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 19:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 19:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 19:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 19:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 19:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:00:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 19:28:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 19:28:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 19:28:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 19:28:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 19:28:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 19:28:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 19:28:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 19:28:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 19:28:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 19:28:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 19:28:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 19:28:24"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 19:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 19:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 19:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 19:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 19:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 19:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 19:30:01"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 20:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 20:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 20:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 20:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 20:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 20:21:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 20:21:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 20:21:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 20:21:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 20:21:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 20:21:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 20:21:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 20:21:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 20:21:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 20:21:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 20:21:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 20:21:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 20:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 20:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 20:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 20:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 20:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 20:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 20:30:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 20:57:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 20:57:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 20:57:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 20:57:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 20:57:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 20:57:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 20:57:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 20:57:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 20:57:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 20:57:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 20:57:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 20:57:26"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 21:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 21:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 21:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 21:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 21:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 21:26:12"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 21:26:12"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 21:26:12"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 21:26:12"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 21:26:12"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 21:26:12"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 21:26:12"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 21:26:12"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 21:26:12"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 21:26:12"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 21:26:12"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 21:26:12"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 21:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 21:53:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 21:53:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 21:53:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 21:53:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 21:53:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 21:53:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 21:53:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 21:53:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 21:53:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 21:53:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 21:53:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 21:53:13"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 22:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 22:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 22:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 22:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 22:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 22:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 22:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 22:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 22:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 22:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 22:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 22:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:00:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 22:22:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 22:22:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 22:22:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 22:22:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 22:22:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 22:22:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 22:22:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 22:22:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 22:22:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 22:22:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 22:22:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 22:22:41"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 22:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 22:48:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 22:48:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 22:48:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 22:48:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 22:48:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 22:48:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 22:48:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 22:48:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 22:48:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 22:48:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 22:48:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 22:48:18"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 23:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 23:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 23:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 23:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 23:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-01 23:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 23:50:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 23:50:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 23:50:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 23:50:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 23:50:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-01 23:50:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 23:50:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 23:50:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 23:50:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 23:50:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 23:50:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-01 23:50:42"}
