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