{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 00:00:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 00:06: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-07 00:06: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-07 00:06: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-07 00:06: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-07 00:06: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-07 00:06: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-07 00:06: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-07 00:06: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-07 00:06: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-07 00:06: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-07 00:06: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-07 00:06: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-07 00:23:44"}
{"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-07 00:23:44"}
{"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-07 00:23:44"}
{"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-07 00:23:44"}
{"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-07 00:23:44"}
{"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-07 00:23:44"}
{"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-07 00:23:44"}
{"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-07 00:23:44"}
{"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-07 00:23:44"}
{"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-07 00:23:44"}
{"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-07 00:23:44"}
{"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-07 00:23:44"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 00: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 01:09: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-07 01:09: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-07 01:09: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-07 01:09: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-07 01:09: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-07 01:09: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-07 01:09: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-07 01:09: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-07 01:09: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-07 01:09: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-07 01:09: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-07 01:09:46"}
{"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-07 01:16:44"}
{"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-07 01:16:44"}
{"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-07 01:16:44"}
{"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-07 01:16:44"}
{"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-07 01:16:44"}
{"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-07 01:16:44"}
{"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-07 01:16:44"}
{"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-07 01:16:44"}
{"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-07 01:16:44"}
{"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-07 01:16:44"}
{"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-07 01:16:44"}
{"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-07 01:16:44"}
{"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-07 01:23:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:23:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:23:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:23:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:23:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:23:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:23:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:23:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:23:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:23:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:23:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:23:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:25: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-07 01:25: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-07 01:25: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-07 01:25: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-07 01:25: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-07 01:25: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-07 01:25: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-07 01:25: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-07 01:25: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-07 01:25: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-07 01:25: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-07 01:25: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 01: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-07 01:30:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:30:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:30:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:30:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:30:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:30:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:30:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:30:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:30:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:30:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:30:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:30:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:48: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-07 01:48: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-07 01:48: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-07 01:48: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-07 01:48: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-07 01:48: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-07 01:48: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-07 01:48: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-07 01:48: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-07 01:48: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-07 01:48: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-07 01:48: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-07 01:54:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:54:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:54:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:54:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:54:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 01:54:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:54:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:54:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:54:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:54:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:54:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 01:54:15"}
{"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-07 01:59: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-07 01:59: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-07 01:59: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-07 01:59: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-07 01:59: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-07 01:59: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-07 01:59: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-07 01:59: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-07 01:59: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-07 01:59: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-07 01:59: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-07 01:59: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 02:40:07"}
{"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-07 02:40:07"}
{"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-07 02:40:07"}
{"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-07 02:40:07"}
{"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-07 02:40:07"}
{"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-07 02:40:07"}
{"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-07 02:40:07"}
{"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-07 02:40:07"}
{"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-07 02:40:07"}
{"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-07 02:40:07"}
{"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-07 02:40:07"}
{"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-07 02:40:07"}
{"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-07 02:53:07"}
{"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-07 02:53:07"}
{"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-07 02:53:07"}
{"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-07 02:53:07"}
{"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-07 02:53:07"}
{"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-07 02:53:07"}
{"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-07 02:53:07"}
{"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-07 02:53:07"}
{"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-07 02:53:07"}
{"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-07 02:53:07"}
{"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-07 02:53:07"}
{"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-07 02:53:07"}
{"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-07 02:53: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-07 02:53: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-07 02:53: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-07 02:53: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-07 02:53: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-07 02:53: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-07 02:53: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-07 02:53: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-07 02:53: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-07 02:53: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-07 02:53: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-07 02:53:11"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 03:21: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-07 03:21: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-07 03:21: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-07 03:21: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-07 03:21: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-07 03:21: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-07 03:21: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-07 03:21: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-07 03:21: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-07 03:21: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-07 03:21: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-07 03:21:52"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 03:30: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-07 03:42:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 03:42:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 03:42:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 03:42:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 03:42:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 03:42: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-07 03:42: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-07 03:42:38"}
{"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-07 03:42: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-07 03:42: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-07 03:42: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-07 03:42:38"}
{"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-07 04:00: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 04:06:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:06:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:06:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:06:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:06:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:06:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:06:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:06:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:06:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:06:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:06:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:06: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-07 04:06: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-07 04:06: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-07 04:06: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-07 04:06: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-07 04:06: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-07 04:06: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-07 04:06: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-07 04:06: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-07 04:06: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-07 04:06: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-07 04:06: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-07 04:06:20"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 04: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-07 04:30:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:30:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:30:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:30:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:30:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:30:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:30:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:30:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:30:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:30:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:30:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:30:42"}
{"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-07 04:33:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:33:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:33:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:33:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:33:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:33:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:33:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:33:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:33:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:33:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:33:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:33:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04: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-07 04: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-07 04: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-07 04: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-07 04: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-07 04: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-07 04: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-07 04: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-07 04: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-07 04: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-07 04: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-07 04: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-07 04:46: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-07 04:46: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-07 04:46: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-07 04:46: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-07 04:46: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-07 04:46: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-07 04:46: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-07 04:46: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-07 04:46: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-07 04:46: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-07 04:46: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-07 04:46:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:54:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:54:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:54:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:54:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:54:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 04:54:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:54:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:54:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:54:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:54:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:54:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 04:54:13"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 05: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-07 05:45: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-07 05:45: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-07 05:45: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-07 05:45: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-07 05:45: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-07 05:45: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-07 05:45: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-07 05:45: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-07 05:45: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-07 05:45: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-07 05:45: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-07 05:45:53"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 06:29: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-07 06:29: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-07 06:29: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-07 06:29: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-07 06:29: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-07 06:29: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-07 06:29: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-07 06:29: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-07 06:29: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-07 06:29: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-07 06:29: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-07 06:29:32"}
{"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-07 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-07 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-07 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-07 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-07 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-07 06:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 06: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 07:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 07:07:35"}
{"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-07 07:07:35"}
{"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-07 07:07:35"}
{"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-07 07:07:35"}
{"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-07 07:07:35"}
{"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-07 07:07:35"}
{"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-07 07:07:35"}
{"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-07 07:07:35"}
{"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-07 07:07:35"}
{"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-07 07:07:35"}
{"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-07 07:07:35"}
{"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-07 07:07:35"}
{"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-07 07:23:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 07:23:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 07:23:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 07:23:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 07:23:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 07:23:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 07:23:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 07:23:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 07:23:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 07:23:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 07:23:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 07:23:42"}
{"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-07 07:25: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-07 07:25: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-07 07:25: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-07 07:25: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-07 07:25: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-07 07:25: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-07 07:25: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-07 07:25: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-07 07:25: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-07 07:25: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-07 07:25: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-07 07:25:25"}
{"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-07 07:29:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 07:29:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 07:29:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 07:29:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 07:29:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 07:29:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 07:29:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 07:29:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 07:29:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 07:29:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 07:29:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 07:29:13"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 07:41: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-07 07:41: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-07 07:41: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-07 07:41: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-07 07:41: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-07 07:41: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-07 07:41: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-07 07:41: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-07 07:41: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-07 07:41: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-07 07:41: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-07 07:41: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 08: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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28:09"}
{"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-07 08:28: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-07 08:28: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-07 08:28: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-07 08:28: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-07 08:28: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-07 08:28: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-07 08:28: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-07 08:28: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-07 08:28: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-07 08:28: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-07 08:28: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-07 08:28:10"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 08:46: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-07 08:46: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-07 08:46: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-07 08:46: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-07 08:46: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-07 08:46: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-07 08:46: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-07 08:46: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-07 08:46: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-07 08:46: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-07 08:46: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-07 08:46:57"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 09:07:04"}
{"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-07 09:07:04"}
{"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-07 09:07:04"}
{"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-07 09:07:04"}
{"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-07 09:07:04"}
{"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-07 09:07:04"}
{"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-07 09:07:04"}
{"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-07 09:07:04"}
{"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-07 09:07:04"}
{"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-07 09:07:04"}
{"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-07 09:07:04"}
{"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-07 09:07:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 09:07:49"}
{"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-07 09:07:49"}
{"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-07 09:07:49"}
{"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-07 09:07:49"}
{"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-07 09:07:49"}
{"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-07 09:07:49"}
{"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-07 09:07:49"}
{"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-07 09:07:49"}
{"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-07 09:07:49"}
{"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-07 09:07:49"}
{"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-07 09:07:49"}
{"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-07 09:07:49"}
{"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-07 09:15:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 09:15:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 09:15:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 09:15:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 09:15:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 09:15:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 09:15:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 09:15:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 09:15:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 09:15:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 09:15:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 09:15:22"}
{"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-07 09: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 09:48: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-07 09:48: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-07 09:48: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-07 09:48: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-07 09:48: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-07 09:48: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-07 09:48: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-07 09:48: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-07 09:48: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-07 09:48: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-07 09:48: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-07 09:48:21"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 10:18:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 10:18:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 10:18:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 10:18:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 10:18:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 10:18:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 10:18:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 10:18:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 10:18:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 10:18:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 10:18:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 10:18:05"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 10:35:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 10:35:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 10:35:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 10:35:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 10:35:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 10:35:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 10:35:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 10:35:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 10:35:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 10:35:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 10:35:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 10:35:42"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56:09"}
{"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-07 10:56: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-07 10:56: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-07 10:56: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-07 10:56: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-07 10:56: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-07 10:56: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-07 10:56: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-07 10:56: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-07 10:56: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-07 10:56: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-07 10:56: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-07 10:56: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 11:16:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 11:16:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 11:16:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 11:16:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 11:16:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 11:16:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 11:16:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 11:16:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 11:16:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 11:16:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 11:16:31"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 11:16:31"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 11: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 12:25: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-07 12:25: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-07 12:25: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-07 12:25: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-07 12:25: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-07 12:25: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-07 12:25: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-07 12:25: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-07 12:25: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-07 12:25: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-07 12:25: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-07 12:25: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 12: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-07 12:55: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-07 12:55: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-07 12:55: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-07 12:55: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-07 12:55: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-07 12:55: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-07 12:55: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-07 12:55: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-07 12:55: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-07 12:55: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-07 12:55: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-07 12:55:51"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 13:04: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-07 13:04: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-07 13:04: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-07 13:04: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-07 13:04: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-07 13:04: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-07 13:04: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-07 13:04: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-07 13:04: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-07 13:04: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-07 13:04: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-07 13:04:21"}
{"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-07 13:18: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-07 13:18: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-07 13:18: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-07 13:18: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-07 13:18: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-07 13:18: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-07 13:18: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-07 13:18: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-07 13:18: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-07 13:18: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-07 13:18: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-07 13:18:56"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 13: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 14: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-07 14:08: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-07 14:08: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-07 14:08: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-07 14:08: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-07 14:08: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-07 14:08: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-07 14:08: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-07 14:08: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-07 14:08: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-07 14:08: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-07 14:08: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-07 14:08: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 14: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 15:05: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-07 15:05: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-07 15:05: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-07 15:05: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-07 15:05: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-07 15:05: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-07 15:05: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-07 15:05: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-07 15:05: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-07 15:05: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-07 15:05: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-07 15:05:56"}
{"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-07 15:21:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 15:21:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 15:21:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 15:21:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 15:21:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 15:21:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 15:21:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 15:21:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 15:21:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 15:21:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 15:21:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 15:21:41"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-07 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-07 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-07 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-07 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-07 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-07 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-07 15:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-07 15:30:01"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 16:12: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-07 16:12: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-07 16:12: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-07 16:12: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-07 16:12: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-07 16:12: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-07 16:12: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-07 16:12: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-07 16:12: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-07 16:12: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-07 16:12: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-07 16:12:03"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 16: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-07 16:58: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-07 16:58: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-07 16:58: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-07 16:58: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-07 16:58: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-07 16:58: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-07 16:58: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-07 16:58: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-07 16:58: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-07 16:58: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-07 16:58: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-07 16:58:58"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 17:38:07"}
{"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-07 17:38:07"}
{"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-07 17:38:07"}
{"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-07 17:38:07"}
{"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-07 17:38:07"}
{"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-07 17:38:07"}
{"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-07 17:38:07"}
{"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-07 17:38:07"}
{"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-07 17:38:07"}
{"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-07 17:38:07"}
{"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-07 17:38:07"}
{"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-07 17:38:07"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 18:41: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-07 18:41: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-07 18:41: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-07 18:41: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-07 18:41: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-07 18:41: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-07 18:41: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-07 18:41: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-07 18:41: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-07 18:41: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-07 18:41: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-07 18:41: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 19:16: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-07 19:16: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-07 19:16: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-07 19:16: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-07 19:16: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-07 19:16: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-07 19:16: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-07 19:16: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-07 19:16: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-07 19:16: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-07 19:16: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-07 19:16:34"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48:21"}
{"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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48: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-07 19:48:40"}
{"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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 20:31: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-07 20:31: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-07 20:31: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-07 20:31: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-07 20:31: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-07 20:31: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-07 20:31: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-07 20:31: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-07 20:31: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-07 20:31: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-07 20:31: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-07 20:31: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-07 20:49:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 20:49:13"}
{"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-07 20:49:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 20:49:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 20:49:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 20:49:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 20:49:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 20:49:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 20:49:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 20:49:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 20:49:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 20:49:13"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 21:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-07 21:22: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-07 21:22: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-07 21:22: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-07 21:22: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-07 21:22: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-07 21:22: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-07 21:22: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-07 21:22: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-07 21:22: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-07 21:22: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-07 21:22: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-07 21:22: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 21: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 22: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-07 22:02: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-07 22:02: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-07 22:02: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-07 22:02: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-07 22:02: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-07 22:02: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-07 22:02: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-07 22:02: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-07 22:02: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-07 22:02: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-07 22:02: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-07 22:02:33"}
{"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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 22:08:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 22:08:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 22:08:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 22:08:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-07 22:08:38"}
{"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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08: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-07 22:08: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 22:30: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-07 22:30: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-07 22:30: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-07 22:30: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-07 22:30: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-07 22:30: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-07 22:30: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-07 22:30: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-07 22:30: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-07 22:30: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-07 22:30: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-07 22:30: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-07 22:49: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-07 22:49: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-07 22:49: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-07 22:49: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-07 22:49: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-07 22:49: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-07 22:49: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-07 22:49: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-07 22:49: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-07 22:49: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-07 22:49: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-07 22:49: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 23:07: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-07 23:07: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-07 23:07: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-07 23:07: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-07 23:07: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-07 23:07: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-07 23:07: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-07 23:07: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-07 23:07: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-07 23:07: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-07 23:07: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-07 23:07: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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 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-07 23:30:00"}
