{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00: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-15 00:00: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-15 00:00: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-15 00:00: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-15 00:00: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-15 00:00: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-15 00:00: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-15 00:00: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-15 00:00: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-15 00:00: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-15 00:00: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-15 00:00: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-15 00:00:11"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:33: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-15 00:53:20"}
{"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-15 00:53:20"}
{"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-15 00:53:20"}
{"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-15 00:53:20"}
{"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-15 00:53:20"}
{"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-15 00:53:20"}
{"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-15 00:53:20"}
{"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-15 00:53:20"}
{"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-15 00:53:20"}
{"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-15 00:53:20"}
{"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-15 00:53:20"}
{"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-15 00:53:20"}
{"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-15 00:55:25"}
{"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-15 00:55:25"}
{"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-15 00:55:25"}
{"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-15 00:55:25"}
{"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-15 00:55:25"}
{"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-15 00:55:25"}
{"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-15 00:55:25"}
{"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-15 00:55:25"}
{"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-15 00:55:25"}
{"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-15 00:55:25"}
{"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-15 00:55:25"}
{"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-15 00:55:25"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 01: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-15 01:15: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-15 01:15: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-15 01:15: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-15 01:15: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-15 01:15: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-15 01:15: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-15 01:15: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-15 01:15: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-15 01:15: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-15 01:15: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-15 01:15: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-15 01:15:18"}
{"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-15 01: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-15 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-15 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-15 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-15 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-15 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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 01: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 02:14: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-15 02:14: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-15 02:14: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-15 02:14: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-15 02:14: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-15 02:14: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-15 02:14: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-15 02:14: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-15 02:14: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-15 02:14: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-15 02:14: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-15 02:14: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-15 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-15 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-15 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-15 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-15 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-15 02: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-15 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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02: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-15 02:38: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-15 02:38: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-15 02:38: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-15 02:38: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-15 02:38: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-15 02:38: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-15 02:38: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-15 02:38: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-15 02:38: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-15 02:38: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-15 02:38: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-15 02:38: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03:19: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-15 03:19: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-15 03:19: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-15 03:19: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-15 03:19: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-15 03:19: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-15 03:19: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-15 03:19: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-15 03:19: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-15 03:19: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-15 03:19: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-15 03:19:28"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03: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-15 03:57: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-15 03:57: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-15 03:57: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-15 03:57: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-15 03:57: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-15 03:57: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-15 03:57:39"}
{"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-15 03:57:39"}
{"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-15 03:57:39"}
{"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-15 03:57:39"}
{"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-15 03:57:39"}
{"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-15 03:57:39"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 04:24: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-15 04:24: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-15 04:24: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-15 04:24: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-15 04:24: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-15 04:24: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-15 04:24: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-15 04:24: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-15 04:24: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-15 04:24: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-15 04:24: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-15 04:24:32"}
{"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-15 04: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-15 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-15 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-15 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-15 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-15 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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 04: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 05: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-15 05:05:27"}
{"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-15 05:05:27"}
{"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-15 05:05:27"}
{"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-15 05:05:27"}
{"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-15 05:05:27"}
{"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-15 05:05:27"}
{"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-15 05:05:27"}
{"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-15 05:05:27"}
{"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-15 05:05:27"}
{"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-15 05:05:27"}
{"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-15 05:05:27"}
{"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-15 05:05:27"}
{"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-15 05:18:53"}
{"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-15 05:18:53"}
{"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-15 05:18:53"}
{"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-15 05:18:53"}
{"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-15 05:18:53"}
{"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-15 05:18:53"}
{"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-15 05:18:53"}
{"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-15 05:18:53"}
{"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-15 05:18:53"}
{"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-15 05:18:53"}
{"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-15 05:18:53"}
{"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-15 05:18:53"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 05: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 06:03: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-15 06:03: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-15 06:03: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-15 06:03: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-15 06:03: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-15 06:03: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-15 06:03: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-15 06:03: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-15 06:03: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-15 06:03: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-15 06:03: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-15 06:03:26"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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":"This operation was aborted","timestamp":"2026-04-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30:05"}
{"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-15 06:30: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-15 06:36:51"}
{"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-15 06:36:51"}
{"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-15 06:36:51"}
{"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-15 06:36:51"}
{"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-15 06:36:51"}
{"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-15 06:36:51"}
{"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-15 06:36:51"}
{"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-15 06:36:51"}
{"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-15 06:36:51"}
{"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-15 06:36:51"}
{"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-15 06:36:51"}
{"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-15 06:36:51"}
{"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-15 06:36:52"}
{"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-15 06:36:52"}
{"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-15 06:36:52"}
{"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-15 06:36:52"}
{"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-15 06:36:52"}
{"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-15 06:36:52"}
{"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-15 06:36:52"}
{"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-15 06:36:52"}
{"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-15 06:36:52"}
{"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-15 06:36:52"}
{"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-15 06:36:52"}
{"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-15 06:36:52"}
{"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-15 06:49: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-15 06:49: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-15 06:49: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-15 06:49: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-15 06:49: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-15 06:49: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-15 06:49: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-15 06:49: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-15 06:49: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-15 06:49: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-15 06:49: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-15 06:49: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 07:31: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-15 07:31: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-15 07:31: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-15 07:31: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-15 07:31: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-15 07:31: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-15 07:31: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-15 07:31: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-15 07:31: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-15 07:31: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-15 07:31: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-15 07:31: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-15 07:40: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-15 07:40: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-15 07:40: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-15 07:40: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-15 07:40: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-15 07:40: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-15 07:40: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-15 07:40: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-15 07:40: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-15 07:40: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-15 07:40: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-15 07:40:12"}
{"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-15 07:46:06"}
{"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-15 07:46:06"}
{"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-15 07:46:06"}
{"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-15 07:46:06"}
{"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-15 07:46:06"}
{"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-15 07:46:06"}
{"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-15 07:46:06"}
{"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-15 07:46:06"}
{"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-15 07:46:06"}
{"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-15 07:46:06"}
{"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-15 07:46:06"}
{"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-15 07:46: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-15 07:46: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-15 07:46: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-15 07:46: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-15 07:46: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-15 07:46: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-15 07:46: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-15 07:46: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-15 07:46: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-15 07:46: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-15 07:46: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-15 07:46: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-15 07:46: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 08: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 08:37:17"}
{"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-15 08:37:17"}
{"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-15 08:37:17"}
{"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-15 08:37:17"}
{"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-15 08:37:17"}
{"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-15 08:37:17"}
{"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-15 08:37:17"}
{"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-15 08:37:17"}
{"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-15 08:37:17"}
{"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-15 08:37:17"}
{"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-15 08:37:17"}
{"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-15 08:37:17"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 09:21:46"}
{"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-15 09:21:46"}
{"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-15 09:21:46"}
{"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-15 09:21:46"}
{"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-15 09:21:46"}
{"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-15 09:21:46"}
{"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-15 09:21:46"}
{"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-15 09:21:46"}
{"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-15 09:21:46"}
{"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-15 09:21:46"}
{"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-15 09:21:46"}
{"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-15 09:21:46"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09: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-15 09:32:59"}
{"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-15 09:32:59"}
{"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-15 09:32:59"}
{"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-15 09:32:59"}
{"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-15 09:32:59"}
{"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-15 09:32:59"}
{"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-15 09:32:59"}
{"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-15 09:32:59"}
{"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-15 09:32:59"}
{"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-15 09:32:59"}
{"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-15 09:32:59"}
{"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-15 09:32:59"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10: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-15 10:29:39"}
{"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-15 10:29:39"}
{"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-15 10:29:39"}
{"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-15 10:29:39"}
{"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-15 10:29:39"}
{"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-15 10:29:39"}
{"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-15 10:29:39"}
{"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-15 10:29:39"}
{"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-15 10:29:39"}
{"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-15 10:29:39"}
{"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-15 10:29:39"}
{"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-15 10:29:39"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 10: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-15 10:54:14"}
{"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-15 10:54:14"}
{"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-15 10:54:14"}
{"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-15 10:54:14"}
{"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-15 10:54:14"}
{"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-15 10:54:14"}
{"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-15 10:54:14"}
{"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-15 10:54:14"}
{"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-15 10:54:14"}
{"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-15 10:54:14"}
{"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-15 10:54:14"}
{"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-15 10:54:14"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 11:09: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-15 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-15 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-15 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-15 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-15 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-15 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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11: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-15 11:41: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-15 11:41: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-15 11:41: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-15 11:41: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-15 11:41: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-15 11:41: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-15 11:41: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-15 11:41: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-15 11:41: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-15 11:41: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-15 11:41: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-15 11:41:55"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 12:23: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-15 12:23: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-15 12:23: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-15 12:23: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-15 12:23: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-15 12:23: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-15 12:23: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-15 12:23: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-15 12:23: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-15 12:23: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-15 12:23: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-15 12:23: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-15 12: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13: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-15 13:05: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-15 13:05: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-15 13:05: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-15 13:05: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-15 13:05: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-15 13:05: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-15 13:05: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-15 13:05: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-15 13:05: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-15 13:05: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-15 13:05: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-15 13:05: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 13:49:56"}
{"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-15 13:49:56"}
{"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-15 13:49:56"}
{"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-15 13:49:56"}
{"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-15 13:49:56"}
{"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-15 13:49:56"}
{"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-15 13:49:56"}
{"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-15 13:49:56"}
{"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-15 13:49:56"}
{"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-15 13:49:56"}
{"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-15 13:49:56"}
{"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-15 13:49:56"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14: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-15 14:39: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-15 14:39: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-15 14:39: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-15 14:39: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-15 14:39: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-15 14:39: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-15 14:39: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-15 14:39: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-15 14:39: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-15 14:39: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-15 14:39: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-15 14:39: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-15 14:58:34"}
{"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-15 14:58:34"}
{"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-15 14:58:34"}
{"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-15 14:58:34"}
{"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-15 14:58:34"}
{"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-15 14:58:34"}
{"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-15 14:58:34"}
{"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-15 14:58:34"}
{"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-15 14:58:34"}
{"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-15 14:58:34"}
{"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-15 14:58:34"}
{"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-15 14:58:34"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 15: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-15 15:13:58"}
{"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-15 15:13:58"}
{"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-15 15:13:58"}
{"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-15 15:13:58"}
{"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-15 15:13:58"}
{"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-15 15:13:58"}
{"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-15 15:13:58"}
{"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-15 15:13:58"}
{"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-15 15:13:58"}
{"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-15 15:13:58"}
{"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-15 15:13:58"}
{"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-15 15:13:58"}
{"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-15 15:29:59"}
{"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-15 15:29:59"}
{"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-15 15:29:59"}
{"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-15 15:29:59"}
{"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-15 15:29:59"}
{"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-15 15:29:59"}
{"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-15 15:29:59"}
{"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-15 15:29:59"}
{"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-15 15:29:59"}
{"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-15 15:29:59"}
{"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-15 15:29:59"}
{"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-15 15:29:59"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 15:39: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-15 15:39: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-15 15:39: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-15 15:39: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-15 15:39: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-15 15:39: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-15 15:39: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-15 15:39: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-15 15:39: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-15 15:39: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-15 15:39: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-15 15:39:55"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16:23:14"}
{"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-15 16:23:14"}
{"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-15 16:23:14"}
{"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-15 16:23:14"}
{"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-15 16:23:14"}
{"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-15 16:23:14"}
{"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-15 16:23:14"}
{"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-15 16:23:14"}
{"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-15 16:23:14"}
{"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-15 16:23:14"}
{"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-15 16:23:14"}
{"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-15 16:23:14"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 16: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14:29"}
{"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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14: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-15 17:14:29"}
{"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-15 17:29: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-15 17:29: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-15 17:29: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-15 17:29: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-15 17:29: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-15 17:29: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-15 17:29: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-15 17:29: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-15 17:29: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-15 17:29: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-15 17:29: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-15 17:29:30"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 17: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-15 17: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-15 17: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-15 17: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-15 17: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-15 17: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-15 17: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-15 17: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-15 17: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-15 17: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-15 17: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-15 17:30: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 18: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-15 18:02:21"}
{"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-15 18:02:21"}
{"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-15 18:02:21"}
{"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-15 18:02:21"}
{"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-15 18:02:21"}
{"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-15 18:02:21"}
{"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-15 18:02:21"}
{"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-15 18:02:21"}
{"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-15 18:02:21"}
{"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-15 18:02:21"}
{"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-15 18:02:21"}
{"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-15 18:02:21"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 18:33:37"}
{"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-15 18:33:37"}
{"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-15 18:33:37"}
{"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-15 18:33:37"}
{"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-15 18:33:37"}
{"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-15 18:33:37"}
{"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-15 18:33:37"}
{"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-15 18:33:37"}
{"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-15 18:33:37"}
{"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-15 18:33:37"}
{"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-15 18:33:37"}
{"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-15 18:33:37"}
{"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-15 18:54:27"}
{"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-15 18:54:27"}
{"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-15 18:54:27"}
{"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-15 18:54:27"}
{"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-15 18:54:27"}
{"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-15 18:54:27"}
{"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-15 18:54:27"}
{"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-15 18:54:27"}
{"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-15 18:54:27"}
{"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-15 18:54:27"}
{"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-15 18:54:27"}
{"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-15 18:54:27"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19:11: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-15 19:11: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-15 19:11: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-15 19:11: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-15 19:11: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-15 19:11: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-15 19:11: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-15 19:11: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-15 19:11: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-15 19:11: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-15 19:11: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-15 19:11: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-15 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-15 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-15 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-15 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-15 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-15 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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19: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-15 19:37: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-15 19:37: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-15 19:37: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-15 19:37: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-15 19:37: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-15 19:37: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-15 19:37: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-15 19:37: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-15 19:37: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-15 19:37: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-15 19:37: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-15 19:37:28"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 20:02:06"}
{"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-15 20:02:06"}
{"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-15 20:02:06"}
{"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-15 20:02:06"}
{"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-15 20:02:06"}
{"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-15 20:02:06"}
{"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-15 20:02:06"}
{"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-15 20:02:06"}
{"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-15 20:02:06"}
{"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-15 20:02:06"}
{"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-15 20:02:06"}
{"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-15 20:02: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-15 20:03:50"}
{"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-15 20:03:50"}
{"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-15 20:03:50"}
{"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-15 20:03:50"}
{"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-15 20:03:50"}
{"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-15 20:03:50"}
{"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-15 20:03:50"}
{"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-15 20:03:50"}
{"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-15 20:03:50"}
{"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-15 20:03:50"}
{"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-15 20:03:50"}
{"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-15 20:03:50"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20: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-15 20:41:58"}
{"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-15 20:41:58"}
{"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-15 20:41:58"}
{"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-15 20:41:58"}
{"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-15 20:41:58"}
{"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-15 20:41:58"}
{"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-15 20:41:58"}
{"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-15 20:41:58"}
{"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-15 20:41:58"}
{"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-15 20:41:58"}
{"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-15 20:41:58"}
{"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-15 20:41:58"}
{"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-15 20:56:59"}
{"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-15 20:56:59"}
{"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-15 20:56:59"}
{"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-15 20:56:59"}
{"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-15 20:56:59"}
{"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-15 20:56:59"}
{"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-15 20:56:59"}
{"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-15 20:56:59"}
{"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-15 20:56:59"}
{"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-15 20:56:59"}
{"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-15 20:56:59"}
{"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-15 20:56:59"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 21:37: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-15 21:37: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-15 21:37: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-15 21:37: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-15 21:37: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-15 21:37: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-15 21:37: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-15 21:37: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-15 21:37: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-15 21:37: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-15 21:37: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-15 21:37: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 22: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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 22:33:48"}
{"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-15 22:33:48"}
{"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-15 22:33:48"}
{"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-15 22:33:48"}
{"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-15 22:33:48"}
{"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-15 22:33:48"}
{"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-15 22:33:48"}
{"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-15 22:33:48"}
{"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-15 22:33:48"}
{"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-15 22:33:48"}
{"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-15 22:33:48"}
{"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-15 22:33:48"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 23: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-15 23:18:51"}
{"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-15 23:18:51"}
{"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-15 23:18:51"}
{"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-15 23:18:51"}
{"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-15 23:18:51"}
{"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-15 23:18:51"}
{"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-15 23:18:51"}
{"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-15 23:18:51"}
{"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-15 23:18:51"}
{"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-15 23:18:51"}
{"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-15 23:18:51"}
{"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-15 23:18:51"}
{"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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 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-15 23:48: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-15 23:48: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-15 23:48: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-15 23:48: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-15 23:48: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-15 23:48: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-15 23:48: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-15 23:48: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-15 23:48: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-15 23:48: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-15 23:48: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-15 23:48:45"}
{"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-15 23:58:57"}
{"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-15 23:58:57"}
{"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-15 23:58:57"}
{"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-15 23:58:57"}
{"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-15 23:58:57"}
{"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-15 23:58:57"}
{"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-15 23:58:57"}
{"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-15 23:58:57"}
{"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-15 23:58:57"}
{"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-15 23:58:57"}
{"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-15 23:58:57"}
{"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-15 23:58:57"}
