[2026-09-06 00:46:41] Telegram API error [sendMessage]: {"ok":false,"error_code":400,"description":"Bad Request: can't parse reply keyboard markup JSON object"}
[2026-09-06 00:47:16] Telegram API error [sendMessage]: {"ok":false,"error_code":400,"description":"Bad Request: can't parse reply keyboard markup JSON object"}
[2026-09-06 00:48:04] Telegram API error [sendMessage]: {"ok":false,"error_code":400,"description":"Bad Request: can't parse reply keyboard markup JSON object"}
[2026-09-06 00:48:07] Telegram API error [sendMessage]: {"ok":false,"error_code":400,"description":"Bad Request: can't parse reply keyboard markup JSON object"}
[2026-09-06 00:48:42] Telegram API error [sendMessage]: {"ok":false,"error_code":400,"description":"Bad Request: can't parse reply keyboard markup JSON object"}
[2026-09-06 00:48:45] Telegram API error [sendMessage]: {"ok":false,"error_code":400,"description":"Bad Request: can't parse reply keyboard markup JSON object"}
[2026-09-06 00:51:52] Telegram API error [sendMessage]: {"ok":false,"error_code":400,"description":"Bad Request: can't parse reply keyboard markup JSON object"}
[2026-09-06 01:06:50] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 03:57:43] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 14:39:11] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 15:21:26] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 15:27:13] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 15:48:07] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 16:17:41] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 17:27:54] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-06 17:27:57] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-06 17:27:58] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-06 18:00:06] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 18:13:44] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 20:37:05] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 21:25:05] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 21:26:39] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 21:32:58] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 21:33:15] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 21:56:45] Telegram API error [sendMessage]: {"ok":false,"error_code":400,"description":"Bad Request: channel direct messages topic must be specified"}
[2026-09-06 22:44:36] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 23:13:00] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 23:28:47] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-06 23:29:05] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-07 04:39:00] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-07 04:39:04] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-07 04:39:04] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-07 12:18:16] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:18:17] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:18:17] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:18:17] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:18:17] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:18:31] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:18:32] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:18:32] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:18:32] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:18:32] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:18:57] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:18:58] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:18:59] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:18:59] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:18:59] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:18:59] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-07 12:19:11] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:12] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:13] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:13] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:19:13] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:19:21] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:22] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:22] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:22] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:19:23] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:24] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:24] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:24] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:19:24] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:19:33] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:33] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:34] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:34] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:19:35] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:35] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:36] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:36] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:19:36] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:19:36] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-07 12:19:52] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:53] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:53] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:53] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:19:53] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:19:56] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:57] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:58] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:58] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:19:58] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:19:59] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:20:00] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:20:00] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:20:00] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:20:00] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-07 12:20:15] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:20:16] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:20:17] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:20:17] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:20:17] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:20:18] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:20:19] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:20:19] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:20:19] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:20:19] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-07 12:49:40] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:49:41] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:49:42] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:49:42] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:49:42] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:49:43] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:49:44] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:49:44] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:49:44] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:54:00] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:01] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:01] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:01] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:54:01] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:54:07] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:07] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:08] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:08] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:54:09] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:09] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:10] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:10] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:54:10] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:54:10] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-07 12:54:18] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:19] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:20] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:20] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:54:20] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 12:54:27] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:28] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:29] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-07T08:30:03+00:00",
    "generated_at_fa": "2026-09-07 08:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 223500,
              
[2026-09-07 12:54:29] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-07 12:54:29] RatesService: fresh fetch failed, using stale disk cache
[2026-09-07 23:04:45] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-07 23:05:01] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-07 23:22:10] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-08 09:51:20] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-08 14:11:54] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-08 19:25:48] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-09 01:19:28] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-08T21:30:03+00:00",
    "generated_at_fa": "2026-09-08 21:30:03",
    "success": true,
    "error": "currency: خطای ارتباط با سرور: Resolving timed out after 10002 milliseconds",
    "data": {
        "currency": null,
        "gold": {
            "sta
[2026-09-09 01:19:29] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-08T21:30:03+00:00",
    "generated_at_fa": "2026-09-08 21:30:03",
    "success": true,
    "error": "currency: خطای ارتباط با سرور: Resolving timed out after 10002 milliseconds",
    "data": {
        "currency": null,
        "gold": {
            "sta
[2026-09-09 01:19:30] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-08T21:30:03+00:00",
    "generated_at_fa": "2026-09-08 21:30:03",
    "success": true,
    "error": "currency: خطای ارتباط با سرور: Resolving timed out after 10002 milliseconds",
    "data": {
        "currency": null,
        "gold": {
            "sta
[2026-09-09 01:19:30] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-09 01:19:30] RatesService: fresh fetch failed, using stale disk cache
[2026-09-09 01:20:05] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-08T21:30:03+00:00",
    "generated_at_fa": "2026-09-08 21:30:03",
    "success": true,
    "error": "currency: خطای ارتباط با سرور: Resolving timed out after 10002 milliseconds",
    "data": {
        "currency": null,
        "gold": {
            "sta
[2026-09-09 01:20:05] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-08T21:30:03+00:00",
    "generated_at_fa": "2026-09-08 21:30:03",
    "success": true,
    "error": "currency: خطای ارتباط با سرور: Resolving timed out after 10002 milliseconds",
    "data": {
        "currency": null,
        "gold": {
            "sta
[2026-09-09 01:20:06] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-08T21:30:03+00:00",
    "generated_at_fa": "2026-09-08 21:30:03",
    "success": true,
    "error": "currency: خطای ارتباط با سرور: Resolving timed out after 10002 milliseconds",
    "data": {
        "currency": null,
        "gold": {
            "sta
[2026-09-09 01:20:06] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-09 01:20:06] RatesService: fresh fetch failed, using stale disk cache
[2026-09-09 07:24:53] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-09 07:24:59] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-09 07:25:22] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-09 07:25:23] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-09 07:25:24] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-09 15:04:09] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-09 15:04:34] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-09 15:54:55] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-09 16:54:03] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-10 20:24:47] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-10T16:30:03+00:00",
    "generated_at_fa": "2026-09-10 16:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-10 20:24:47] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-10T16:30:03+00:00",
    "generated_at_fa": "2026-09-10 16:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-10 20:24:48] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-10T16:30:03+00:00",
    "generated_at_fa": "2026-09-10 16:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-10 20:24:48] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-10 20:24:54] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-10T16:30:03+00:00",
    "generated_at_fa": "2026-09-10 16:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-10 20:24:54] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-10T16:30:03+00:00",
    "generated_at_fa": "2026-09-10 16:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-10 20:24:55] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-10T16:30:03+00:00",
    "generated_at_fa": "2026-09-10 16:30:03",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-10 20:24:55] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-10 20:24:55] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-10 22:02:33] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-10 22:02:45] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-10 22:03:30] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-10 22:03:54] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-10 22:44:14] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-11 18:38:27] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-12 04:17:42] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-12 10:28:05] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-12 10:28:14] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-14 04:50:36] KhodroService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:50:36] KhodroService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:50:37] KhodroService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:50:37] KhodroService refresh: all attempts failed, keeping previous cache
[2026-09-14 04:50:37] KhodroService: no data available (API failed, no valid cache)
[2026-09-14 04:50:44] KhodroService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:50:45] KhodroService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:50:45] KhodroService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:50:45] KhodroService refresh: all attempts failed, keeping previous cache
[2026-09-14 04:50:45] KhodroService: no data available (API failed, no valid cache)
[2026-09-14 04:50:48] MobileService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:50:48] MobileService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:50:49] MobileService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:50:49] MobileService refresh: all attempts failed, keeping previous cache
[2026-09-14 04:50:49] MobileService: no data available (API failed, no valid cache)
[2026-09-14 04:50:49] MobileService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:50:49] MobileService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:50:50] MobileService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:50:50] MobileService refresh: all attempts failed, keeping previous cache
[2026-09-14 04:50:50] MobileService: no data available (API failed, no valid cache)
[2026-09-14 04:50:59] KhodroService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:51:00] KhodroService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:51:00] KhodroService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 04:51:00] KhodroService refresh: all attempts failed, keeping previous cache
[2026-09-14 04:51:00] KhodroService: no data available (API failed, no valid cache)
[2026-09-14 05:55:19] RatesService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:20] RatesService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:20] RatesService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:20] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-14 05:55:20] RatesService: no data available (API failed, no valid cache)
[2026-09-14 05:55:28] RatesService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:28] RatesService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:29] RatesService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:29] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-14 05:55:29] RatesService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:29] RatesService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:30] RatesService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:30] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-14 05:55:30] RatesService: no data available (API failed, no valid cache)
[2026-09-14 05:55:30] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-14 05:55:34] RatesService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:35] RatesService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:35] RatesService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:35] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-14 05:55:35] RatesService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:36] RatesService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:36] RatesService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:36] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-14 05:55:36] RatesService: no data available (API failed, no valid cache)
[2026-09-14 05:55:36] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-14 05:55:40] RatesService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:40] RatesService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:41] RatesService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:41] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-14 05:55:41] RatesService: no data available (API failed, no valid cache)
[2026-09-14 05:55:44] RatesService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:45] RatesService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:45] RatesService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:45] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-14 05:55:45] RatesService refresh error (attempt 1): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:46] RatesService refresh error (attempt 2): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:46] RatesService refresh error (attempt 3): SSL: no alternative certificate subject name matches target hostname 'pernima.ir' [http 0]
[2026-09-14 05:55:46] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-14 05:55:46] RatesService: no data available (API failed, no valid cache)
[2026-09-14 05:55:46] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-14 08:06:53] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-14 20:19:29] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-14 20:19:32] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-14 20:19:32] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-15 04:23:44] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-15 04:23:47] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-15 04:23:47] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-15 20:51:18] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-16 09:02:02] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:02] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:03] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:03] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-16 09:02:03] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:04] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:05] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:05] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-16 09:02:05] RatesService: no data available (API failed, no valid cache)
[2026-09-16 09:02:28] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:29] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:30] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:30] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-16 09:02:30] RatesService: no data available (API failed, no valid cache)
[2026-09-16 09:02:38] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:40] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:40] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:40] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-16 09:02:41] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:41] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:42] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:02:42] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-16 09:02:42] RatesService: no data available (API failed, no valid cache)
[2026-09-16 09:02:42] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-16 09:03:28] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:03:29] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:03:29] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:03:29] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-16 09:03:30] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:03:30] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:03:31] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:03:31] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-16 09:03:31] RatesService: no data available (API failed, no valid cache)
[2026-09-16 09:03:31] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-16 09:03:37] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:03:37] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:03:38] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-16T05:30:02+00:00",
    "generated_at_fa": "2026-09-16 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-16 09:03:38] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-16 09:03:38] RatesService: no data available (API failed, no valid cache)
[2026-09-18 10:17:02] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-18 10:17:07] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-18T06:30:02+00:00",
    "generated_at_fa": "2026-09-18 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 228200,
              
[2026-09-18 10:17:08] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-18T06:30:02+00:00",
    "generated_at_fa": "2026-09-18 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 228200,
              
[2026-09-18 10:17:09] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-18T06:30:02+00:00",
    "generated_at_fa": "2026-09-18 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 228200,
              
[2026-09-18 10:17:09] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-18 10:17:09] RatesService: no data available (API failed, no valid cache)
[2026-09-18 10:17:13] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-18T06:30:02+00:00",
    "generated_at_fa": "2026-09-18 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 228200,
              
[2026-09-18 10:17:14] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-18T06:30:02+00:00",
    "generated_at_fa": "2026-09-18 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 228200,
              
[2026-09-18 10:17:15] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-18T06:30:02+00:00",
    "generated_at_fa": "2026-09-18 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 228200,
              
[2026-09-18 10:17:15] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-18 10:17:15] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-18T06:30:02+00:00",
    "generated_at_fa": "2026-09-18 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 228200,
              
[2026-09-18 10:17:16] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-18T06:30:02+00:00",
    "generated_at_fa": "2026-09-18 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 228200,
              
[2026-09-18 10:17:17] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-18T06:30:02+00:00",
    "generated_at_fa": "2026-09-18 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 228200,
              
[2026-09-18 10:17:17] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-18 10:17:17] RatesService: no data available (API failed, no valid cache)
[2026-09-18 10:17:17] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-20 08:43:50] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-20 10:54:33] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-20T06:30:02+00:00",
    "generated_at_fa": "2026-09-20 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-20 10:54:34] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-20T06:30:02+00:00",
    "generated_at_fa": "2026-09-20 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-20 10:54:35] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-20T06:30:02+00:00",
    "generated_at_fa": "2026-09-20 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-20 10:54:35] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-20 10:54:35] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-20T06:30:02+00:00",
    "generated_at_fa": "2026-09-20 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-20 10:54:36] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-20T06:30:02+00:00",
    "generated_at_fa": "2026-09-20 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-20 10:54:36] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-20T06:30:02+00:00",
    "generated_at_fa": "2026-09-20 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-20 10:54:36] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-20 10:54:36] RatesService: no data available (API failed, no valid cache)
[2026-09-20 10:54:39] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-20T06:30:02+00:00",
    "generated_at_fa": "2026-09-20 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-20 10:54:39] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-20T06:30:02+00:00",
    "generated_at_fa": "2026-09-20 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-20 10:54:40] RatesService refresh: invalid/incomplete response (attempt 3, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-20T06:30:02+00:00",
    "generated_at_fa": "2026-09-20 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-20 10:54:40] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-20 10:54:40] RatesService: no data available (API failed, no valid cache)
[2026-09-21 04:57:04] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-21 10:19:40] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-22 08:22:15] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-23 04:26:11] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-23 10:48:23] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-24 08:22:43] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-24 08:23:58] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-24 21:03:32] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-25 07:29:26] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 07:29:46] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 07:30:06] Telegram API error [answerCallbackQuery]: {"ok":false,"error_code":400,"description":"Bad Request: query is too old and response timeout expired or query ID is invalid"}
[2026-09-25 07:30:26] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 07:30:46] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 07:31:08] Telegram API error [answerCallbackQuery]: {"ok":false,"error_code":400,"description":"Bad Request: query is too old and response timeout expired or query ID is invalid"}
[2026-09-25 07:31:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 07:31:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 07:32:28] CryptoService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 07:32:48] CryptoService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:09:48] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:10:09] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:10:28] Telegram API error [answerCallbackQuery]: {"ok":false,"error_code":400,"description":"Bad Request: query is too old and response timeout expired or query ID is invalid"}
[2026-09-25 13:10:48] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:11:09] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:11:30] Telegram API error [answerCallbackQuery]: {"ok":false,"error_code":400,"description":"Bad Request: query is too old and response timeout expired or query ID is invalid"}
[2026-09-25 13:11:50] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:12:11] RatesService refresh error (attempt 2): Operation timed out after 20002 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:12:50] CryptoService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:13:11] CryptoService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:13:50] CryptoService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:14:11] CryptoService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:14:50] CryptoService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:15:11] CryptoService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:15:50] CryptoService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:16:11] CryptoService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:17:01] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:17:21] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:18:01] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:18:21] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:19:03] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:19:23] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:24:22] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:24:42] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:25:03] RatesService refresh error (attempt 3): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:25:03] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 13:25:03] RatesService: no data available (API failed, no valid cache)
[2026-09-25 13:25:05] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:25:26] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:25:34] KhodroService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:25:46] RatesService refresh error (attempt 3): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:25:46] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 13:25:46] RatesService: no data available (API failed, no valid cache)
[2026-09-25 13:25:54] KhodroService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:26:34] KhodroService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:27:08] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:27:29] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:27:49] RatesService refresh error (attempt 3): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:27:49] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 13:27:49] RatesService: no data available (API failed, no valid cache)
[2026-09-25 13:28:08] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:28:29] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:29:10] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:29:31] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:30:14] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:30:35] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:31:22] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:31:43] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:32:38] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:32:59] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:34:10] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:34:31] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:36:14] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:36:35] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:38:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:39:17] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:41:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:41:34] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:43:50] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 13:44:11] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:29:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:29:24] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:29:45] RatesService refresh error (attempt 3): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:29:45] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 14:29:45] RatesService: no data available (API failed, no valid cache)
[2026-09-25 14:30:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:30:24] RatesService refresh error (attempt 2): Operation timed out after 20003 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:31:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:31:24] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:31:45] RatesService refresh error (attempt 3): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:31:45] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 14:31:45] RatesService: no data available (API failed, no valid cache)
[2026-09-25 14:32:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:32:24] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:32:45] RatesService refresh error (attempt 3): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:32:45] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 14:32:45] RatesService: no data available (API failed, no valid cache)
[2026-09-25 14:33:04] RatesService refresh error (attempt 1): Operation timed out after 20009 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:33:24] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:34:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:34:24] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:35:12] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:35:32] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:36:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:36:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:38:00] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:38:20] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:40:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:40:24] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:42:10] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:42:30] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:44:27] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:44:47] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:46:32] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:46:52] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:48:58] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:49:18] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:51:22] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:51:42] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:54:00] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:54:20] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:56:33] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:56:53] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:59:29] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 14:59:49] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:01:34] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:01:54] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:04:15] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:04:35] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:06:57] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:07:17] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:09:14] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:09:34] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:11:27] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:11:47] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:13:49] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:14:09] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:16:01] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:16:21] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:18:40] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:19:00] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:20:44] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:21:04] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:23:16] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:23:36] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:25:54] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:26:14] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:28:07] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:28:27] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:30:09] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:30:29] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:33:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:33:24] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:35:30] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:35:50] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:38:29] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:38:49] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:41:23] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:41:43] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:43:25] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:43:45] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:46:16] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:46:36] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:48:20] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:48:40] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:50:32] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:50:52] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:52:47] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:53:07] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:55:40] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:56:00] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:56:21] MobileService refresh error (attempt 3): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:56:21] MobileService refresh: all attempts failed, keeping previous cache
[2026-09-25 15:56:21] MobileService: no data available (API failed, no valid cache)
[2026-09-25 15:56:40] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:56:41] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:57:00] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:57:01] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:57:22] MobileService refresh error (attempt 3): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:57:22] MobileService refresh: all attempts failed, keeping previous cache
[2026-09-25 15:57:22] MobileService: no data available (API failed, no valid cache)
[2026-09-25 15:57:42] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:58:02] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:58:46] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:59:06] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 15:59:54] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:00:14] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:01:10] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:01:30] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:02:42] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:03:02] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:04:46] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:05:06] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:07:37] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:07:57] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:10:25] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:10:45] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:12:41] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:13:01] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:15:36] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:15:56] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:18:11] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:18:31] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:20:53] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:21:13] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:23:36] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:23:56] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:26:18] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:26:38] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:29:01] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:29:21] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:31:15] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:31:35] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:33:30] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:33:50] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:35:44] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:36:04] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:38:21] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:38:41] MobileService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:40:38] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:40:58] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:42:48] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:43:08] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:45:46] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:46:06] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:48:29] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:48:49] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:50:35] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:50:55] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:53:20] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:53:40] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:56:13] MobileService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:56:33] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:59:05] MobileService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 16:59:25] MobileService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:01:29] MobileService refresh error (attempt 1): Failed to connect to pernima.ir:443 after 77 ms: Could not connect to server [http 0]
[2026-09-25 17:01:29] MobileService refresh error (attempt 2): Failed to connect to pernima.ir:443 after 87 ms: Could not connect to server [http 0]
[2026-09-25 17:01:30] MobileService refresh error (attempt 3): Failed to connect to pernima.ir:443 after 77 ms: Could not connect to server [http 0]
[2026-09-25 17:01:30] MobileService refresh: all attempts failed, keeping previous cache
[2026-09-25 17:01:30] MobileService: no data available (API failed, no valid cache)
[2026-09-25 17:01:30] MobileService refresh error (attempt 1): Failed to connect to pernima.ir:443 after 77 ms: Could not connect to server [http 0]
[2026-09-25 17:01:31] MobileService refresh error (attempt 2): Failed to connect to pernima.ir:443 after 72 ms: Could not connect to server [http 0]
[2026-09-25 17:01:31] MobileService refresh error (attempt 3): Failed to connect to pernima.ir:443 after 83 ms: Could not connect to server [http 0]
[2026-09-25 17:01:31] MobileService refresh: all attempts failed, keeping previous cache
[2026-09-25 17:01:31] MobileService: no data available (API failed, no valid cache)
[2026-09-25 17:01:31] RatesService refresh error (attempt 1): Failed to connect to pernima.ir:443 after 75 ms: Could not connect to server [http 0]
[2026-09-25 17:01:32] RatesService refresh error (attempt 2): Failed to connect to pernima.ir:443 after 77 ms: Could not connect to server [http 0]
[2026-09-25 17:01:33] RatesService refresh error (attempt 3): Failed to connect to pernima.ir:443 after 85 ms: Could not connect to server [http 0]
[2026-09-25 17:01:33] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 17:01:33] RatesService: no data available (API failed, no valid cache)
[2026-09-25 17:01:33] RatesService refresh error (attempt 1): Failed to connect to pernima.ir:443 after 83 ms: Could not connect to server [http 0]
[2026-09-25 17:01:33] RatesService refresh error (attempt 2): Failed to connect to pernima.ir:443 after 81 ms: Could not connect to server [http 0]
[2026-09-25 17:01:34] RatesService refresh error (attempt 3): Failed to connect to pernima.ir:443 after 77 ms: Could not connect to server [http 0]
[2026-09-25 17:01:34] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 17:01:34] RatesService: no data available (API failed, no valid cache)
[2026-09-25 17:01:34] RatesService refresh error (attempt 1): Failed to connect to pernima.ir:443 after 81 ms: Could not connect to server [http 0]
[2026-09-25 17:01:35] RatesService refresh error (attempt 2): Failed to connect to pernima.ir:443 after 86 ms: Could not connect to server [http 0]
[2026-09-25 17:01:35] RatesService refresh error (attempt 3): Failed to connect to pernima.ir:443 after 86 ms: Could not connect to server [http 0]
[2026-09-25 17:01:35] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 17:01:35] RatesService: no data available (API failed, no valid cache)
[2026-09-25 17:01:35] RatesService refresh error (attempt 1): Failed to connect to pernima.ir:443 after 74 ms: Could not connect to server [http 0]
[2026-09-25 17:01:36] RatesService refresh error (attempt 2): Failed to connect to pernima.ir:443 after 85 ms: Could not connect to server [http 0]
[2026-09-25 17:01:37] RatesService refresh error (attempt 3): Failed to connect to pernima.ir:443 after 77 ms: Could not connect to server [http 0]
[2026-09-25 17:01:37] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 17:01:37] RatesService: no data available (API failed, no valid cache)
[2026-09-25 17:09:53] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:10:13] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:10:53] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:11:13] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:11:55] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:12:15] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:12:59] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:13:19] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:14:07] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:14:27] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:15:23] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:15:43] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:16:55] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:17:15] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:18:59] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:19:19] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:21:29] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:21:49] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:24:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:24:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:27:00] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:27:20] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:29:10] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:29:30] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:31:29] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:31:49] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:34:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:34:41] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:37:03] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:37:23] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:39:59] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:40:19] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:42:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:42:33] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:44:41] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:45:01] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:47:38] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:47:58] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:49:53] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:50:13] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:51:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:52:16] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:54:43] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:55:03] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:57:32] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 17:57:52] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:00:14] RatesService refresh error (attempt 1): Operation timed out after 20002 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:00:34] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:02:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:02:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:04:46] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:05:06] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:07:17] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:07:37] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:10:04] RatesService refresh error (attempt 1): Operation timed out after 20003 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:10:24] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:12:38] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:12:58] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:15:17] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:15:37] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:18:14] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:18:34] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:20:47] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:21:07] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:23:10] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:23:30] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:25:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:25:33] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:28:01] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:28:21] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:30:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:30:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:33:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:33:24] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:35:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:35:33] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:37:25] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:37:45] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:40:20] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:40:40] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:42:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:43:16] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:45:25] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:45:45] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:48:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:48:41] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:50:58] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:51:18] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:53:20] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:53:40] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:56:10] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:56:30] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:58:45] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 18:59:05] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:01:12] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:01:32] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:03:37] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:03:57] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:05:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:06:16] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:08:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:08:33] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:10:31] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:10:51] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:12:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:13:16] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:15:08] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:15:28] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:17:14] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:17:34] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:19:37] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:19:57] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:22:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:22:33] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:24:19] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:24:39] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:25:00] RatesService refresh error (attempt 3): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:25:00] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 19:25:00] RatesService: no data available (API failed, no valid cache)
[2026-09-25 19:25:19] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:25:39] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:26:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:26:41] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:27:25] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:27:45] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:28:33] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:28:53] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:29:49] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:30:09] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:31:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:31:41] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:33:25] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:33:46] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:35:59] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:36:20] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:38:16] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:38:37] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:40:50] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:41:11] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:43:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:43:25] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:45:53] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:46:14] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:47:57] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:48:18] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:50:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:51:17] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:53:47] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:54:08] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:56:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:56:49] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:58:36] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 19:58:57] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:00:52] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:01:13] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:03:01] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:03:22] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:05:14] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:05:35] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:07:39] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:08:00] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:10:38] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:10:59] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:13:33] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:13:54] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:16:29] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:16:50] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:19:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:19:34] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:21:36] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:21:57] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:23:54] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:24:15] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:26:31] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:26:52] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:27:00] RatesService refresh error (attempt 3): Connection timed out after 8000 milliseconds [http 0]
[2026-09-25 20:27:00] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 20:27:00] RatesService: no data available (API failed, no valid cache)
[2026-09-25 20:30:07] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:30:28] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:30:48] RatesService refresh error (attempt 3): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:30:48] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 20:30:48] RatesService: no data available (API failed, no valid cache)
[2026-09-25 20:31:07] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:31:28] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:32:09] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:32:30] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:33:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:33:34] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:34:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:34:42] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:35:37] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:35:58] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:37:09] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:37:30] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:39:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:39:34] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:41:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:42:17] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:44:35] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:44:56] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:46:57] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:47:18] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:49:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:49:49] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:52:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:52:25] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:54:18] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:54:39] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:56:34] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:56:55] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:59:19] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 20:59:40] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:01:27] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:01:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:04:25] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:04:46] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:06:49] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:07:10] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:09:30] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:09:51] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:11:44] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:12:05] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:14:22] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:14:43] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:16:32] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:16:53] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:19:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:19:25] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:21:51] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:22:12] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:24:40] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:25:01] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:27:17] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:27:38] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:29:49] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:30:10] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:32:32] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:32:53] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:35:09] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:35:30] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:37:38] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:37:59] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:40:14] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:40:35] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:42:35] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:42:56] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:45:07] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:45:28] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:47:50] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:48:11] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:50:10] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:50:31] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:53:02] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:53:23] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:55:32] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:55:53] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:57:41] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:58:02] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 21:59:58] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:00:19] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:02:05] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:02:26] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:04:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:05:17] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:07:01] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:07:22] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:09:27] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:09:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:12:11] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:12:32] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:14:20] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:14:41] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:16:39] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:17:00] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:18:45] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:19:06] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:20:47] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:21:08] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:23:30] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:23:51] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:26:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:26:42] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:29:08] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:29:29] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:31:48] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:32:09] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:34:06] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:34:27] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:36:10] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:36:31] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:39:00] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:39:21] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:41:14] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:41:35] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:43:41] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:44:02] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:46:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:46:51] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:47:12] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:47:32] RatesService refresh error (attempt 3): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:47:32] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-25 22:47:32] RatesService: no data available (API failed, no valid cache)
[2026-09-25 22:47:51] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:48:12] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:48:53] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:49:14] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:49:57] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:50:18] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:51:05] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:51:26] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:52:21] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:52:42] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:53:53] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:54:14] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:55:58] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:56:18] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:58:49] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 22:59:09] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:01:17] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:01:37] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:03:39] RatesService refresh error (attempt 1): Operation timed out after 20002 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:03:59] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:05:52] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:06:12] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:08:03] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:08:23] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:10:44] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:11:04] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:12:48] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:13:08] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:15:39] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:15:59] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:18:32] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:18:52] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:20:48] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:21:08] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:23:19] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:23:39] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:25:29] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:25:49] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:28:19] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:28:39] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:31:00] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:31:20] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:33:03] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:33:23] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:35:06] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:35:26] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:37:20] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:37:40] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:39:36] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:39:56] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:42:00] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:42:20] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:44:44] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:45:04] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:46:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:47:16] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:49:19] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:49:39] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:51:47] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:52:07] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:54:29] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:54:49] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:57:05] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-25 23:57:25] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:00:05] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:00:25] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:02:27] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:02:47] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:04:58] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:05:18] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:07:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:07:41] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:10:01] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:10:21] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:12:39] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:12:59] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:14:55] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:15:15] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:17:25] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:17:45] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:19:59] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:20:19] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:22:44] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:23:04] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:25:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:25:33] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:28:09] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:28:29] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:30:23] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:30:43] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:33:00] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:33:20] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:35:30] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:35:50] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:38:02] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:38:22] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:40:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:40:41] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:43:11] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:43:31] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:45:26] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:45:46] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:48:01] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:48:21] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:50:40] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:51:00] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:52:55] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:53:15] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:55:15] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:55:35] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:57:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:58:16] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 00:59:59] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:00:19] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:02:40] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:03:00] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:05:12] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:05:32] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:07:34] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:07:54] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:10:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:10:41] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:13:10] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:13:30] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:15:15] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:15:35] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:17:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:17:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:19:39] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:19:59] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:21:40] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:22:00] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:24:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:24:33] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:27:03] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:27:23] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:29:44] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:30:04] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:32:27] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:32:47] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:34:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:35:16] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:37:38] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:37:58] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:39:38] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:39:58] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:42:02] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:42:22] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:45:01] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:45:21] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:47:30] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:47:50] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:49:37] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:49:57] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:52:12] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:52:32] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:54:16] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:54:36] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:56:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:56:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:58:50] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 01:59:10] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:01:47] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:02:07] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:04:10] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:04:30] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:06:38] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:06:58] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:08:51] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:09:11] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:11:26] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:11:46] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:13:55] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:14:15] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:16:14] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:16:34] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:18:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:18:41] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:21:07] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:21:27] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:23:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:23:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:25:33] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:25:53] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:27:46] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:28:06] RatesService refresh error (attempt 2): Operation timed out after 20002 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:29:59] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:30:19] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:32:18] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:32:38] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:34:46] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:35:06] RatesService refresh error (attempt 2): Operation timed out after 20003 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:37:08] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:37:28] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:39:47] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:40:07] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:42:03] RatesService refresh error (attempt 1): Operation timed out after 20006 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:42:23] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:44:35] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:44:55] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:46:54] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:47:14] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:49:12] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:49:32] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:52:10] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:52:30] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:54:58] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:55:18] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:57:13] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:57:33] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:59:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 02:59:41] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:02:02] RatesService refresh error (attempt 1): Operation timed out after 20004 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:02:22] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:04:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:04:41] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:06:41] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:07:01] RatesService refresh error (attempt 2): Operation timed out after 20002 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:09:37] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:09:57] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:12:37] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:12:57] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:14:58] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:15:18] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:17:52] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:18:12] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:20:01] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:20:21] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:22:32] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:22:52] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:25:10] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:25:30] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:27:44] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:28:04] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:29:52] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:30:12] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:32:26] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:32:46] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:35:09] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:35:29] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:37:26] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:37:46] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:39:30] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:39:50] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:42:29] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:42:49] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:44:57] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:45:17] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:47:46] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:48:06] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:50:42] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:51:02] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:53:29] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:53:49] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:55:29] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:55:49] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:57:51] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 03:58:11] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:00:16] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:00:37] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:03:00] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:03:20] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:05:43] RatesService refresh error (attempt 1): Operation timed out after 20006 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:06:03] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:08:30] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:08:50] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:10:37] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:10:57] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:13:37] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:13:57] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:16:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:16:33] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:19:02] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:19:22] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:21:42] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:22:02] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:24:09] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:24:29] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:26:44] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:27:04] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:29:09] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:29:29] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:32:08] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:32:28] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:34:42] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:35:02] RatesService refresh error (attempt 2): Operation timed out after 20007 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:36:44] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:37:04] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:38:58] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:39:18] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:41:25] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:41:45] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:43:48] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:44:08] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:45:48] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:46:08] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:46:29] RatesService refresh error (attempt 3): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:46:29] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-26 04:46:29] RatesService: no data available (API failed, no valid cache)
[2026-09-26 04:48:30] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:48:50] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:50:39] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:50:59] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:53:36] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:53:56] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:56:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:56:24] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:58:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 04:58:41] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:00:43] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:01:03] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:03:36] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:03:56] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:06:31] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:06:51] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:09:19] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:09:39] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:12:11] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:12:31] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:15:03] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:15:23] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:17:49] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:18:09] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:20:06] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:20:26] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:22:19] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:22:39] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:24:29] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:24:49] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:27:26] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:27:46] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:29:49] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:30:09] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:32:16] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:32:36] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:34:43] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:35:03] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:37:03] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:37:23] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:39:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:39:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:41:54] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:42:14] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:44:19] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:44:39] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:46:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:46:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:49:09] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:49:29] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:52:05] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:52:25] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:54:28] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:54:48] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:56:31] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:56:51] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:59:31] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 05:59:51] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:01:32] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:01:52] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:04:11] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:04:31] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:06:34] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:06:54] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:08:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:09:16] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:10:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:11:16] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:13:46] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:14:06] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:16:09] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:16:29] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:18:35] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:18:55] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:21:19] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:21:39] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:23:55] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:24:15] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:26:49] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:27:09] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:29:15] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:29:35] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:31:25] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:31:45] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:33:38] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:33:58] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:36:24] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:36:44] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:39:24] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:39:44] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:42:06] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:42:26] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:44:42] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:45:02] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:47:16] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:47:36] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:49:18] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:49:38] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:52:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:52:33] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:54:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:55:16] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:57:26] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 06:57:46] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:00:00] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:00:20] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:02:55] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:03:15] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:05:50] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:06:10] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:07:56] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:08:16] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:10:15] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:10:35] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:12:40] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:13:00] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:14:52] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:15:12] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:16:58] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:17:18] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:19:36] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:19:56] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:21:53] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:22:13] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:24:36] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:24:56] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:27:25] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:27:45] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:30:05] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:30:25] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:33:04] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:33:24] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:35:46] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:36:06] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:37:57] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:38:17] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:40:03] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:40:23] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:42:47] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:43:07] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:44:55] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:45:15] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:47:47] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:48:07] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:50:02] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:50:22] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:52:19] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:52:39] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:54:36] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:54:56] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:56:45] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:57:05] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:59:09] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 07:59:29] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:01:52] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:02:12] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:04:11] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:04:31] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:07:11] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:07:31] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:09:14] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:09:34] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:11:40] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:12:00] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:14:14] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:14:34] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:16:37] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:16:57] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:18:42] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:19:02] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:21:24] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:21:44] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:23:26] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:23:46] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:25:34] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:25:54] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:27:45] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:28:05] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:30:14] RatesService refresh error (attempt 1): Operation timed out after 20019 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:30:34] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:32:21] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:32:41] RatesService refresh error (attempt 2): Operation timed out after 20002 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:35:18] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:35:38] RatesService refresh error (attempt 2): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:38:00] RatesService refresh error (attempt 1): Operation timed out after 20002 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:38:20] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:40:36] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:40:56] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:42:48] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:43:08] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:45:39] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:45:59] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:48:17] RatesService refresh error (attempt 1): Operation timed out after 20000 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:48:37] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:51:06] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:51:26] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:52:40] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-26 08:52:43] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-26 08:52:43] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-26 08:53:59] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:54:19] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:56:05] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:56:25] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:58:08] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 08:58:28] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 09:00:13] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 09:00:33] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 09:02:16] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 09:02:36] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 09:04:30] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 09:04:50] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 09:06:49] RatesService refresh error (attempt 1): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 09:07:09] RatesService refresh error (attempt 2): Operation timed out after 20001 milliseconds with 0 bytes received [http 0]
[2026-09-26 09:10:59] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-26 09:11:27] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-26 09:14:33] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-26 09:14:53] KhodroService refresh error (attempt 1):  [http 404]
[2026-09-26 09:14:53] KhodroService refresh error (attempt 2):  [http 404]
[2026-09-26 09:14:54] KhodroService refresh error (attempt 3):  [http 404]
[2026-09-26 09:14:54] KhodroService refresh: all attempts failed, keeping previous cache
[2026-09-26 09:14:54] KhodroService: no data available (API failed, no valid cache)
[2026-09-27 06:44:13] CryptoService refresh: invalid response (attempt 1): {
    "updated_at": "2026-09-27 02:30:03",
    "timestamp": 1790476203,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-09-27 06:44:14] CryptoService refresh: invalid response (attempt 2): {
    "updated_at": "2026-09-27 02:30:03",
    "timestamp": 1790476203,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-09-27 06:44:14] CryptoService refresh: invalid response (attempt 3): {
    "updated_at": "2026-09-27 02:30:03",
    "timestamp": 1790476203,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-09-27 06:44:14] CryptoService refresh: all attempts failed, keeping previous cache
[2026-09-27 06:44:14] CryptoService: no data available (API failed, no valid cache)
[2026-09-27 06:44:18] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T02:30:02+00:00",
    "generated_at_fa": "2026-09-27 02:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 06:44:19] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T02:30:02+00:00",
    "generated_at_fa": "2026-09-27 02:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 06:44:19] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 06:44:19] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T02:30:02+00:00",
    "generated_at_fa": "2026-09-27 02:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 06:44:19] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T02:30:02+00:00",
    "generated_at_fa": "2026-09-27 02:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 06:44:19] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 06:44:19] RatesService: no data available (API failed, no valid cache)
[2026-09-27 06:44:22] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T02:30:02+00:00",
    "generated_at_fa": "2026-09-27 02:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 06:44:22] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T02:30:02+00:00",
    "generated_at_fa": "2026-09-27 02:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 06:44:22] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 06:44:22] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T02:30:02+00:00",
    "generated_at_fa": "2026-09-27 02:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 06:44:22] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T02:30:02+00:00",
    "generated_at_fa": "2026-09-27 02:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 06:44:22] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 06:44:22] RatesService: no data available (API failed, no valid cache)
[2026-09-27 06:44:22] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-27 09:15:29] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T05:30:02+00:00",
    "generated_at_fa": "2026-09-27 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 09:15:29] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T05:30:02+00:00",
    "generated_at_fa": "2026-09-27 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 09:15:29] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 09:15:29] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T05:30:02+00:00",
    "generated_at_fa": "2026-09-27 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 09:15:29] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T05:30:02+00:00",
    "generated_at_fa": "2026-09-27 05:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 09:15:29] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 09:15:29] RatesService: no data available (API failed, no valid cache)
[2026-09-27 09:15:29] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-27 10:48:48] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T06:30:02+00:00",
    "generated_at_fa": "2026-09-27 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 10:48:48] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T06:30:02+00:00",
    "generated_at_fa": "2026-09-27 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 10:48:48] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 10:48:48] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T06:30:02+00:00",
    "generated_at_fa": "2026-09-27 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 10:48:48] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T06:30:02+00:00",
    "generated_at_fa": "2026-09-27 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 10:48:48] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 10:48:48] RatesService: no data available (API failed, no valid cache)
[2026-09-27 10:48:48] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-27 10:48:55] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T06:30:02+00:00",
    "generated_at_fa": "2026-09-27 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 10:48:55] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T06:30:02+00:00",
    "generated_at_fa": "2026-09-27 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 10:48:55] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 10:48:55] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T06:30:02+00:00",
    "generated_at_fa": "2026-09-27 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 10:48:55] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-09-27T06:30:02+00:00",
    "generated_at_fa": "2026-09-27 06:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-09-27 10:48:55] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 10:48:55] RatesService: no data available (API failed, no valid cache)
[2026-09-27 10:48:56] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-27 19:35:27] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-27T15:30:01+00:00",
    "generated_at_fa": "2026-09-27 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 235300,
              
[2026-09-27 19:35:27] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-27T15:30:01+00:00",
    "generated_at_fa": "2026-09-27 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 235300,
              
[2026-09-27 19:35:27] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 19:35:28] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-27T15:30:01+00:00",
    "generated_at_fa": "2026-09-27 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 235300,
              
[2026-09-27 19:35:28] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-27T15:30:01+00:00",
    "generated_at_fa": "2026-09-27 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 235300,
              
[2026-09-27 19:35:28] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 19:35:28] RatesService: fresh fetch failed, using stale disk cache
[2026-09-27 19:35:42] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-27T15:30:01+00:00",
    "generated_at_fa": "2026-09-27 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 235300,
              
[2026-09-27 19:35:42] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-27T15:30:01+00:00",
    "generated_at_fa": "2026-09-27 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 235300,
              
[2026-09-27 19:35:42] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 19:35:42] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-27T15:30:01+00:00",
    "generated_at_fa": "2026-09-27 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 235300,
              
[2026-09-27 19:35:42] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-27T15:30:01+00:00",
    "generated_at_fa": "2026-09-27 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 235300,
              
[2026-09-27 19:35:42] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 19:35:42] RatesService: fresh fetch failed, using stale disk cache
[2026-09-27 19:35:48] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-27T15:30:01+00:00",
    "generated_at_fa": "2026-09-27 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 235300,
              
[2026-09-27 19:35:48] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-27T15:30:01+00:00",
    "generated_at_fa": "2026-09-27 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 235300,
              
[2026-09-27 19:35:48] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 19:35:48] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-27T15:30:01+00:00",
    "generated_at_fa": "2026-09-27 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 235300,
              
[2026-09-27 19:35:48] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-09-27T15:30:01+00:00",
    "generated_at_fa": "2026-09-27 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 235300,
              
[2026-09-27 19:35:48] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-27 19:35:48] RatesService: fresh fetch failed, using stale disk cache
[2026-09-27 19:35:48] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-28 08:44:48] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-28 20:40:59] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-28 21:37:07] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-28 21:37:10] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-09-29 09:52:29] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-30 09:14:17] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-30 09:14:19] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-30 13:17:32] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-09-30 20:15:58] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-30T16:30:02+00:00",
    "generated_at_fa": "2026-09-30 16:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-30 20:15:58] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-30T16:30:02+00:00",
    "generated_at_fa": "2026-09-30 16:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-30 20:15:58] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-30 20:15:58] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-30T16:30:02+00:00",
    "generated_at_fa": "2026-09-30 16:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-30 20:15:59] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-30T16:30:02+00:00",
    "generated_at_fa": "2026-09-30 16:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-30 20:15:59] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-30 20:15:59] RatesService: no data available (API failed, no valid cache)
[2026-09-30 20:16:01] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-30T16:30:02+00:00",
    "generated_at_fa": "2026-09-30 16:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-30 20:16:01] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-30T16:30:02+00:00",
    "generated_at_fa": "2026-09-30 16:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-30 20:16:01] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-30 20:16:01] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-30T16:30:02+00:00",
    "generated_at_fa": "2026-09-30 16:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-30 20:16:01] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-09-30T16:30:02+00:00",
    "generated_at_fa": "2026-09-30 16:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-09-30 20:16:01] RatesService refresh: all attempts failed, keeping previous cache
[2026-09-30 20:16:01] RatesService: no data available (API failed, no valid cache)
[2026-09-30 20:16:01] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-01 01:12:43] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-01 11:45:14] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-01 23:31:04] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-02 09:51:03] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-03 13:49:54] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-03 18:30:39] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-04 15:47:37] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-04 22:52:43] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-06 16:54:04] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-08 16:04:48] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-08 16:04:51] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-08 16:04:51] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-09 17:55:58] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-09T13:30:02+00:00",
    "generated_at_fa": "2026-10-09 13:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-09 17:55:59] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-09T13:30:02+00:00",
    "generated_at_fa": "2026-10-09 13:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-09 17:55:59] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-09 17:55:59] RatesService: no data available (API failed, no valid cache)
[2026-10-09 17:56:08] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-09T13:30:02+00:00",
    "generated_at_fa": "2026-10-09 13:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-09 17:56:08] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-09T13:30:02+00:00",
    "generated_at_fa": "2026-10-09 13:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-09 17:56:08] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-09 17:56:08] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-09T13:30:02+00:00",
    "generated_at_fa": "2026-10-09 13:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-09 17:56:09] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-09T13:30:02+00:00",
    "generated_at_fa": "2026-10-09 13:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-09 17:56:09] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-09 17:56:09] RatesService: no data available (API failed, no valid cache)
[2026-10-11 17:09:53] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-11 23:44:02] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T19:30:02+00:00",
    "generated_at_fa": "2026-10-11 19:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:02] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T19:30:02+00:00",
    "generated_at_fa": "2026-10-11 19:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:02] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:44:02] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T19:30:02+00:00",
    "generated_at_fa": "2026-10-11 19:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:02] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T19:30:02+00:00",
    "generated_at_fa": "2026-10-11 19:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:02] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:44:02] RatesService: no data available (API failed, no valid cache)
[2026-10-11 23:44:04] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T19:30:02+00:00",
    "generated_at_fa": "2026-10-11 19:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:05] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T19:30:02+00:00",
    "generated_at_fa": "2026-10-11 19:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:05] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:44:05] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T19:30:02+00:00",
    "generated_at_fa": "2026-10-11 19:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:05] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T19:30:02+00:00",
    "generated_at_fa": "2026-10-11 19:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:05] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:44:05] RatesService: no data available (API failed, no valid cache)
[2026-10-11 23:44:05] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-11 23:44:26] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:23+00:00",
    "generated_at_fa": "2026-10-11 20:14:23",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:26] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:23+00:00",
    "generated_at_fa": "2026-10-11 20:14:23",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:26] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:44:26] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:23+00:00",
    "generated_at_fa": "2026-10-11 20:14:23",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:26] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:23+00:00",
    "generated_at_fa": "2026-10-11 20:14:23",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:26] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:44:26] RatesService: no data available (API failed, no valid cache)
[2026-10-11 23:44:27] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-11 23:44:30] CryptoService refresh: invalid response (attempt 1): {
    "updated_at": "2026-10-11 19:30:02",
    "timestamp": 1791747002,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-11 23:44:30] CryptoService refresh: invalid response (attempt 2): {
    "updated_at": "2026-10-11 19:30:02",
    "timestamp": 1791747002,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-11 23:44:31] CryptoService refresh: invalid response (attempt 3): {
    "updated_at": "2026-10-11 19:30:02",
    "timestamp": 1791747002,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-11 23:44:31] CryptoService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:44:31] CryptoService: no data available (API failed, no valid cache)
[2026-10-11 23:44:36] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:23+00:00",
    "generated_at_fa": "2026-10-11 20:14:23",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:36] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:23+00:00",
    "generated_at_fa": "2026-10-11 20:14:23",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:44:36] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:44:36] RatesService: no data available (API failed, no valid cache)
[2026-10-11 23:45:13] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:59+00:00",
    "generated_at_fa": "2026-10-11 20:14:59",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:45:13] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:59+00:00",
    "generated_at_fa": "2026-10-11 20:14:59",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:45:13] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:45:13] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:59+00:00",
    "generated_at_fa": "2026-10-11 20:14:59",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:45:14] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:59+00:00",
    "generated_at_fa": "2026-10-11 20:14:59",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:45:14] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:45:14] RatesService: no data available (API failed, no valid cache)
[2026-10-11 23:45:14] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-11 23:45:18] CryptoService refresh: invalid response (attempt 1): {
    "updated_at": "2026-10-11 20:15:06",
    "timestamp": 1791749706,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-11 23:45:18] CryptoService refresh: invalid response (attempt 2): {
    "updated_at": "2026-10-11 20:15:06",
    "timestamp": 1791749706,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-11 23:45:19] CryptoService refresh: invalid response (attempt 3): {
    "updated_at": "2026-10-11 20:15:06",
    "timestamp": 1791749706,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-11 23:45:19] CryptoService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:45:19] CryptoService: no data available (API failed, no valid cache)
[2026-10-11 23:45:26] CryptoService refresh: invalid response (attempt 1): {
    "updated_at": "2026-10-11 20:15:06",
    "timestamp": 1791749706,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-11 23:45:26] CryptoService refresh: invalid response (attempt 2): {
    "updated_at": "2026-10-11 20:15:06",
    "timestamp": 1791749706,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-11 23:45:27] CryptoService refresh: invalid response (attempt 3): {
    "updated_at": "2026-10-11 20:15:06",
    "timestamp": 1791749706,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-11 23:45:27] CryptoService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:45:27] CryptoService: no data available (API failed, no valid cache)
[2026-10-11 23:45:30] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:59+00:00",
    "generated_at_fa": "2026-10-11 20:14:59",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:45:30] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:59+00:00",
    "generated_at_fa": "2026-10-11 20:14:59",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:45:30] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:45:30] RatesService: no data available (API failed, no valid cache)
[2026-10-11 23:45:45] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:59+00:00",
    "generated_at_fa": "2026-10-11 20:14:59",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:45:45] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:59+00:00",
    "generated_at_fa": "2026-10-11 20:14:59",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:45:45] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:45:45] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:59+00:00",
    "generated_at_fa": "2026-10-11 20:14:59",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:45:46] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-11T20:14:59+00:00",
    "generated_at_fa": "2026-10-11 20:14:59",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-11 23:45:46] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-11 23:45:46] RatesService: no data available (API failed, no valid cache)
[2026-10-11 23:45:46] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-13 04:59:01] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-17 03:08:03] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:30:02+00:00",
    "generated_at_fa": "2026-10-16 23:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:08:03] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:30:02+00:00",
    "generated_at_fa": "2026-10-16 23:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:08:03] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-17 03:08:03] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:30:02+00:00",
    "generated_at_fa": "2026-10-16 23:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:08:04] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:30:02+00:00",
    "generated_at_fa": "2026-10-16 23:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:08:04] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-17 03:08:04] RatesService: no data available (API failed, no valid cache)
[2026-10-17 03:08:52] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:08:52] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:08:52] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-17 03:08:52] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:08:53] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:08:53] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-17 03:08:53] RatesService: no data available (API failed, no valid cache)
[2026-10-17 03:08:53] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-17 03:08:57] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:08:57] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:08:57] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-17 03:08:57] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:08:58] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:08:58] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-17 03:08:58] RatesService: no data available (API failed, no valid cache)
[2026-10-17 03:08:58] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-17 03:10:40] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:10:41] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:10:41] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-17 03:10:41] RatesService: no data available (API failed, no valid cache)
[2026-10-17 03:10:43] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:10:43] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:10:43] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-17 03:10:43] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:10:44] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-16T23:38:40+00:00",
    "generated_at_fa": "2026-10-16 23:38:40",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 265500,
              
[2026-10-17 03:10:44] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-17 03:10:44] RatesService: no data available (API failed, no valid cache)
[2026-10-17 03:10:44] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-20 14:07:50] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-20 14:07:53] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-20 14:07:53] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-20 14:30:50] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-20 16:57:39] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-21 06:54:34] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-21 07:57:35] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-22 11:10:57] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T07:30:02+00:00",
    "generated_at_fa": "2026-10-22 07:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 11:10:57] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T07:30:02+00:00",
    "generated_at_fa": "2026-10-22 07:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 11:10:57] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-22 11:10:57] RatesService: no data available (API failed, no valid cache)
[2026-10-22 11:11:03] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T07:30:02+00:00",
    "generated_at_fa": "2026-10-22 07:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 11:11:03] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T07:30:02+00:00",
    "generated_at_fa": "2026-10-22 07:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 11:11:03] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-22 11:11:03] RatesService: no data available (API failed, no valid cache)
[2026-10-22 11:11:06] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T07:30:02+00:00",
    "generated_at_fa": "2026-10-22 07:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 11:11:06] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T07:30:02+00:00",
    "generated_at_fa": "2026-10-22 07:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 11:11:06] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-22 11:11:06] RatesService: no data available (API failed, no valid cache)
[2026-10-22 11:11:10] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T07:30:02+00:00",
    "generated_at_fa": "2026-10-22 07:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 11:11:10] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T07:30:02+00:00",
    "generated_at_fa": "2026-10-22 07:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 11:11:10] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-22 11:11:10] RatesService: no data available (API failed, no valid cache)
[2026-10-22 13:17:12] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:30:02+00:00",
    "generated_at_fa": "2026-10-22 09:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:17:12] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:30:02+00:00",
    "generated_at_fa": "2026-10-22 09:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:17:12] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-22 13:17:12] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:30:02+00:00",
    "generated_at_fa": "2026-10-22 09:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:17:12] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:30:02+00:00",
    "generated_at_fa": "2026-10-22 09:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:17:12] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-22 13:17:12] RatesService: no data available (API failed, no valid cache)
[2026-10-22 13:17:15] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:30:02+00:00",
    "generated_at_fa": "2026-10-22 09:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:17:15] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:30:02+00:00",
    "generated_at_fa": "2026-10-22 09:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:17:15] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-22 13:17:15] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:30:02+00:00",
    "generated_at_fa": "2026-10-22 09:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:17:15] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:30:02+00:00",
    "generated_at_fa": "2026-10-22 09:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:17:15] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-22 13:17:15] RatesService: no data available (API failed, no valid cache)
[2026-10-22 13:17:16] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-22 13:17:37] CryptoService refresh: invalid response (attempt 1): {
    "updated_at": "2026-10-22 09:30:02",
    "timestamp": 1792661402,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-22 13:17:38] CryptoService refresh: invalid response (attempt 2): {
    "updated_at": "2026-10-22 09:30:02",
    "timestamp": 1792661402,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-22 13:17:38] CryptoService refresh: invalid response (attempt 3): {
    "updated_at": "2026-10-22 09:30:02",
    "timestamp": 1792661402,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-22 13:17:38] CryptoService refresh: all attempts failed, keeping previous cache
[2026-10-22 13:17:38] CryptoService: no data available (API failed, no valid cache)
[2026-10-22 13:17:41] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:47:33+00:00",
    "generated_at_fa": "2026-10-22 09:47:33",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:17:41] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:47:33+00:00",
    "generated_at_fa": "2026-10-22 09:47:33",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:17:41] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-22 13:17:41] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:47:33+00:00",
    "generated_at_fa": "2026-10-22 09:47:33",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:17:41] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:47:33+00:00",
    "generated_at_fa": "2026-10-22 09:47:33",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:17:41] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-22 13:17:41] RatesService: no data available (API failed, no valid cache)
[2026-10-22 13:17:41] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-22 13:18:07] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:47:33+00:00",
    "generated_at_fa": "2026-10-22 09:47:33",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:18:07] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:47:33+00:00",
    "generated_at_fa": "2026-10-22 09:47:33",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:18:07] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-22 13:18:07] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:47:33+00:00",
    "generated_at_fa": "2026-10-22 09:47:33",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:18:08] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-22T09:47:33+00:00",
    "generated_at_fa": "2026-10-22 09:47:33",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-22 13:18:08] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-22 13:18:08] RatesService: no data available (API failed, no valid cache)
[2026-10-22 13:18:08] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-22 13:18:12] CryptoService refresh: invalid response (attempt 1): {
    "updated_at": "2026-10-22 09:48:01",
    "timestamp": 1792662481,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-22 13:18:13] CryptoService refresh: invalid response (attempt 2): {
    "updated_at": "2026-10-22 09:48:01",
    "timestamp": 1792662481,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-22 13:18:13] CryptoService refresh: invalid response (attempt 3): {
    "updated_at": "2026-10-22 09:48:01",
    "timestamp": 1792662481,
    "data": {
        "status": 403,
        "message": "The request could not be completed due to insufficient credit."
    }
}
[2026-10-22 13:18:13] CryptoService refresh: all attempts failed, keeping previous cache
[2026-10-22 13:18:13] CryptoService: no data available (API failed, no valid cache)
[2026-10-22 13:22:15] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-22 15:14:01] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-22 15:14:04] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-22 15:14:04] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-22 23:56:24] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-23 20:21:30] MobileService refresh: invalid response (attempt 1): {
    "updated_at": "2026-10-23 08:30:02",
    "timestamp": 1792744202,
    "data": {
        "status": 403
    }
}
[2026-10-23 20:21:31] MobileService refresh: invalid response (attempt 2): {
    "updated_at": "2026-10-23 08:30:02",
    "timestamp": 1792744202,
    "data": {
        "status": 403
    }
}
[2026-10-23 20:21:31] MobileService refresh: invalid response (attempt 3): {
    "updated_at": "2026-10-23 08:30:02",
    "timestamp": 1792744202,
    "data": {
        "status": 403
    }
}
[2026-10-23 20:21:31] MobileService refresh: all attempts failed, keeping previous cache
[2026-10-23 20:21:31] MobileService: no data available (API failed, no valid cache)
[2026-10-23 20:21:35] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-23 20:21:39] MobileService refresh: invalid response (attempt 1): {
    "updated_at": "2026-10-23 08:30:02",
    "timestamp": 1792744202,
    "data": {
        "status": 403
    }
}
[2026-10-23 20:21:40] MobileService refresh: invalid response (attempt 2): {
    "updated_at": "2026-10-23 08:30:02",
    "timestamp": 1792744202,
    "data": {
        "status": 403
    }
}
[2026-10-23 20:21:40] MobileService refresh: invalid response (attempt 3): {
    "updated_at": "2026-10-23 08:30:02",
    "timestamp": 1792744202,
    "data": {
        "status": 403
    }
}
[2026-10-23 20:21:40] MobileService refresh: all attempts failed, keeping previous cache
[2026-10-23 20:21:40] MobileService: no data available (API failed, no valid cache)
[2026-10-24 11:35:43] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-24 11:35:48] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-24 11:35:48] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-24 12:35:57] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-24T08:30:02+00:00",
    "generated_at_fa": "2026-10-24 08:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-24 12:35:58] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-24T08:30:02+00:00",
    "generated_at_fa": "2026-10-24 08:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-24 12:35:58] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-24 12:35:58] RatesService: fresh fetch failed, using stale disk cache
[2026-10-24 12:35:58] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-24 12:36:02] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-24T08:30:02+00:00",
    "generated_at_fa": "2026-10-24 08:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-24 12:36:02] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-24T08:30:02+00:00",
    "generated_at_fa": "2026-10-24 08:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-24 12:36:02] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-24 12:36:02] RatesService: fresh fetch failed, using stale disk cache
[2026-10-24 12:36:02] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-24 19:08:47] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-24T15:30:01+00:00",
    "generated_at_fa": "2026-10-24 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 268700,
              
[2026-10-24 19:08:47] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-24T15:30:01+00:00",
    "generated_at_fa": "2026-10-24 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 268700,
              
[2026-10-24 19:08:47] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-24 19:08:47] RatesService: no data available (API failed, no valid cache)
[2026-10-24 19:08:49] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-24T15:30:01+00:00",
    "generated_at_fa": "2026-10-24 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 268700,
              
[2026-10-24 19:08:49] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-24T15:30:01+00:00",
    "generated_at_fa": "2026-10-24 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 268700,
              
[2026-10-24 19:08:49] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-24 19:08:49] RatesService: no data available (API failed, no valid cache)
[2026-10-24 19:08:49] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-24 19:09:18] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-24T15:30:01+00:00",
    "generated_at_fa": "2026-10-24 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 268700,
              
[2026-10-24 19:09:18] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-10-24T15:30:01+00:00",
    "generated_at_fa": "2026-10-24 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 268700,
              
[2026-10-24 19:09:18] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-24 19:09:18] RatesService: no data available (API failed, no valid cache)
[2026-10-24 19:09:18] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-25 13:12:55] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-26 00:24:08] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-26 19:54:41] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-26T15:30:01+00:00",
    "generated_at_fa": "2026-10-26 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-26 19:54:41] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-26T15:30:01+00:00",
    "generated_at_fa": "2026-10-26 15:30:01",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-26 19:54:41] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-26 19:54:41] RatesService: fresh fetch failed, using stale disk cache
[2026-10-27 03:04:55] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-29 05:58:15] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-29 07:09:16] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-10-29 13:08:41] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T09:30:02+00:00",
    "generated_at_fa": "2026-10-29 09:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-29 13:08:41] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T09:30:02+00:00",
    "generated_at_fa": "2026-10-29 09:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-29 13:08:41] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-29 13:08:41] RatesService: no data available (API failed, no valid cache)
[2026-10-29 17:09:40] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:30:02+00:00",
    "generated_at_fa": "2026-10-29 13:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:09:40] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:30:02+00:00",
    "generated_at_fa": "2026-10-29 13:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:09:40] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-29 17:09:40] RatesService: no data available (API failed, no valid cache)
[2026-10-29 17:10:01] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:39:58+00:00",
    "generated_at_fa": "2026-10-29 13:39:58",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:10:01] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:39:58+00:00",
    "generated_at_fa": "2026-10-29 13:39:58",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:10:01] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-29 17:10:01] RatesService: no data available (API failed, no valid cache)
[2026-10-29 17:10:03] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:39:58+00:00",
    "generated_at_fa": "2026-10-29 13:39:58",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:10:04] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:39:58+00:00",
    "generated_at_fa": "2026-10-29 13:39:58",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:10:04] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-29 17:10:04] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:39:58+00:00",
    "generated_at_fa": "2026-10-29 13:39:58",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:10:04] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:39:58+00:00",
    "generated_at_fa": "2026-10-29 13:39:58",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:10:04] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-29 17:10:04] RatesService: no data available (API failed, no valid cache)
[2026-10-29 17:10:28] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:39:58+00:00",
    "generated_at_fa": "2026-10-29 13:39:58",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:10:29] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:39:58+00:00",
    "generated_at_fa": "2026-10-29 13:39:58",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:10:29] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-29 17:10:29] RatesService: no data available (API failed, no valid cache)
[2026-10-29 17:23:58] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:39:58+00:00",
    "generated_at_fa": "2026-10-29 13:39:58",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:23:58] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:39:58+00:00",
    "generated_at_fa": "2026-10-29 13:39:58",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:23:58] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-29 17:23:58] RatesService: no data available (API failed, no valid cache)
[2026-10-29 17:23:59] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-29 17:24:28] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:39:58+00:00",
    "generated_at_fa": "2026-10-29 13:39:58",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:24:28] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-10-29T13:39:58+00:00",
    "generated_at_fa": "2026-10-29 13:39:58",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 403,
            "message": "The request could not be completed due to insufficient credit."
        },
 
[2026-10-29 17:24:28] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-29 17:24:28] RatesService: no data available (API failed, no valid cache)
[2026-10-29 17:24:28] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-31 07:19:48] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-31 08:46:45] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-31 10:23:00] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-31 11:32:18] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-31 11:44:58] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-31 12:07:18] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-31 12:44:11] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-31 13:46:18] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-31 14:23:18] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-31T10:30:02+00:00",
    "generated_at_fa": "2026-10-31 10:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-31 14:23:18] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-31T10:30:02+00:00",
    "generated_at_fa": "2026-10-31 10:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-31 14:23:18] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-31 14:23:18] RatesService: fresh fetch failed, using stale disk cache
[2026-10-31 14:23:18] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-31 17:15:16] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-31 18:23:02] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-10-31 22:50:36] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-31T18:30:02+00:00",
    "generated_at_fa": "2026-10-31 18:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-31 22:50:36] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-10-31T18:30:02+00:00",
    "generated_at_fa": "2026-10-31 18:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-10-31 22:50:36] RatesService refresh: all attempts failed, keeping previous cache
[2026-10-31 22:50:36] RatesService: fresh fetch failed, using stale disk cache
[2026-10-31 22:50:36] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-11-01 10:18:01] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-11-01 10:31:46] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-11-01 12:07:47] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-11-01 13:17:23] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-11-01T09:30:02+00:00",
    "generated_at_fa": "2026-11-01 09:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-11-01 13:17:23] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=1): {
    "generated_at": "2026-11-01T09:30:02+00:00",
    "generated_at_fa": "2026-11-01 09:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-11-01 13:17:23] RatesService refresh: all attempts failed, keeping previous cache
[2026-11-01 13:17:23] RatesService: fresh fetch failed, using stale disk cache
[2026-11-01 13:17:23] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-11-02 08:25:17] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-11-02 12:04:07] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-11-03 07:07:05] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-03 07:07:08] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-03 07:07:08] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-04 09:11:52] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-04 11:43:23] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-11-04 14:07:42] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-11-04 21:51:17] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-11-05 01:01:36] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-11-04T21:30:02+00:00",
    "generated_at_fa": "2026-11-04 21:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-11-05 01:01:36] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=0, hasGold=0): {
    "generated_at": "2026-11-04T21:30:02+00:00",
    "generated_at_fa": "2026-11-04 21:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 402,
            "message": "Navasan dosn't answer properly. Please try again later or contact support."

[2026-11-05 01:01:36] RatesService refresh: all attempts failed, keeping previous cache
[2026-11-05 01:01:36] RatesService: fresh fetch failed, using stale disk cache
[2026-11-05 01:01:36] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-11-05 13:45:22] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-05 13:45:26] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-05 13:45:26] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-05 15:42:37] RatesService refresh: invalid/incomplete response (attempt 1, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-11-05T11:30:02+00:00",
    "generated_at_fa": "2026-11-05 11:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 267300,
              
[2026-11-05 15:42:38] RatesService refresh: invalid/incomplete response (attempt 2, hasCurrency=1, hasGold=0): {
    "generated_at": "2026-11-05T11:30:02+00:00",
    "generated_at_fa": "2026-11-05 11:30:02",
    "success": true,
    "error": null,
    "data": {
        "currency": {
            "status": 200,
            "result": {
                "usd": {
                    "value": 267300,
              
[2026-11-05 15:42:38] RatesService refresh: all attempts failed, keeping previous cache
[2026-11-05 15:42:38] RatesService: fresh fetch failed, using stale disk cache
[2026-11-05 15:42:38] Telegram API error [editMessageText]: {"ok":false,"error_code":400,"description":"Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message"}
[2026-11-05 22:29:37] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-05 22:31:04] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-05 22:31:08] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-05 23:14:20] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-05 23:14:25] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-05 23:14:44] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
[2026-11-06 01:29:37] Telegram API error [getUpdates]: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
