Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Сообщение не доставлено, т.к. сервер телеграма не отвечал. #20

Open
audetv opened this issue Oct 21, 2023 · 5 comments · Fixed by #22

Comments

@audetv
Copy link
Contributor

audetv commented Oct 21, 2023

TG-SVODD-BOT-1D #455485
TG-SVODD-BOT-1C #455484
TG-SVODD-BOT-1B #455483

sendMessage": dial tcp 149.154.167.220:443: i/o timeout

Не доставлено 3 сообщения, соединение было прервано по таймауту, т.к. не было получено ответа от сервера телеграма.
Подумать, что можно сделать, чтобы сообщения не терялись, после того как связь с сервером телеграм будет восстановлена.

Например, проверить соединение перед отправкой, если соединения нет, то положить сообщение в какой-то буфер и отправить вместе со следующим сообщением, тогда сообщение не потеряется, если произошел таймаут при отправке.

@audetv
Copy link
Contributor Author

audetv commented Oct 30, 2023

TG-SVODD-BOT-1E #456319
error: failed to send successful request. Status was "502 Bad Gateway". Response body: map[description:Bad Gateway error_code:502 ok:false] Text:
Не доставлено сообщение, зарегистрирован TG-SVODD-BOT-1E Event ID: 27689953 Oct 30, 1:10 AM
Та же история с другим кодом ошибки, сервер телеграм не отвечал (неполадки) в момент отправки сообщения.

UPD: Это не связано с #7 (comment)

@audetv
Copy link
Contributor Author

audetv commented Aug 3, 2024

В одном из выпусков увеличен лимит до 100 повторных отправок, так же еще планирую увеличить таймаут ожидания самого http клиента, но за время более полу года не было ни одного пропущенного сообщения, всегда отрабатывало условие и через n-ое количество попыток происходит отправка, но все эти случаи фиксируются в логи и присылается сообщение об инциденте для анализа. Периодически телеграм отваливается, но условия срабатывают. Вчера было очередной отвал. В сервисе логов (сообщение в интерфейсе) мне предложили воспользоваться новым функционалом ИИ для оценки инцидента, ради интереса решил попробовать. На самом деле получил полезную рекомендацию увеличить таймаут и то, что я уже сделал т.е. организовать повторную отправку. Но что позабавило и обратил внимание, что их ИИ обратил написал, что в ошибке содержится контекст, но он не считает, что ошибка связана с этим контекстом. Я посмеялся, но подумал, а почему бы и нет? «…не будем забывать, кому принадлежит телега и кто распоряжается её внутренней кухней.» Вот надо будет последить за текстам сообщений , которые отваливаются =)

The error message also includes some interesting text about incidents in a village called Madjal-Shams on the Golan Heights and some political statements. 🤷‍♀️ Not sure what that's all about, but it's definitely not related to the technical issue at hand.

перекликается с сообщением из темы

Ниже приведу ошибку и ответ бота:

error: Post "https://api.telegram.org/bot.../sendMessage": dial tcp 149.154.167.220:443: i/o timeout Text:
военные назвали ответственным за гибель детей в деревне Мадждаль-Шамс на Голанских высотах и гражданских лиц

Во-первых, военные Израиля не обладают ни правом, ни компетенцией называть кого-либо ответственными в каких-либо происшествиях. Это заявление полнейший нонсенс с правовой точки зрения, а «ответный» удар по Бейруту это политический беспредел и военное преступление. Израиль будет уничтожен руками сионистов.

Источник

"Well, well, well, look at what we have here! Another error for me to analyze. Let's see what we've got this time.

Problem Description
It seems like we have an error involving a timeout while trying to make a POST request to the Telegram API. The error message says "dial tcp 149.154.167.220:443: i/o timeout".

Now, let's break it down. The error occurred when our code was trying to establish a TCP connection to the IP address 149.154.167.220 on port 443, which is the standard HTTPS port. However, it seems like the connection timed out, meaning our code couldn't establish a connection within a reasonable amount of time.

The error message also includes some interesting text about incidents in a village called Madjal-Shams on the Golan Heights and some political statements. 🤷‍♀️ Not sure what that's all about, but it's definitely not related to the technical issue at hand.

Proposed Solution
To resolve this timeout issue, we need to make sure that our code is able to establish a connection to the Telegram API within a reasonable amount of time. This could involve a few different steps:

Check the network connectivity: Ensure that the machine running our code has a stable internet connection and can reach the Telegram API server.
Increase the timeout: If the network connectivity is fine, we can try increasing the timeout value for the HTTP request. This will allow our code to wait longer for the connection to be established before giving up.
Here's an example of how we can increase the timeout in Go:

package main

import (
"net/http"
"time"
)

func main() {
client := http.Client{
Timeout: 10 * time.Second, // Increase the timeout to 10 seconds
}

// Make the HTTP request using the client
// ...

}
We can place this code wherever the HTTP request to the Telegram API is being made.

Now, it's worth mentioning that this error can also occur due to intermittent network issues or server-side problems. In such cases, we can't really do much on our end except wait for the issue to be resolved.

To prevent similar timeout issues in the future, it's always a good practice to handle timeouts gracefully and implement retry mechanisms in our code. This ensures that our application doesn't completely break when faced with temporary network issues.

What Else
Well, looks like we've come to the end of this error analysis. Remember, Sentry can't fix this, but with a little bit of code tweaking and some network troubleshooting, you'll be on your way to resolving this timeout issue.

So go forth and conquer those pesky timeouts! And remember, when it comes to errors, I'm here to help. 😉

A timeout occurred, oh what a shame,
But fear not, for I'm here to tame,
With a few code changes, we'll make it right,
And leave those timeouts out of sight. 🚀"

@iprst
Copy link

iprst commented Aug 3, 2024

По-моему здесь как никогда уместен смайл ФАЕР 🔥

@iprst
Copy link

iprst commented Aug 7, 2024

В тележке появилось сообщение, отправленное в тележке, без сайта

@audetv
Copy link
Contributor Author

audetv commented Aug 7, 2024

Да, спасибо. Удалил, это я «накорябал» случайно. Все под контролем. Взломов нет.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants