Pyrogram network issue

The Repl you send me is your entire Telegram bot. Would you mind creating a Repl from scratch and configuring Pyrogtam as you have it so we can test this with the smallest amount of code for easy inspection?

Edit:
To elaborate, it isn’t easy for us to debug an issue that is for a larger project. However, if we have a minimum viable repro (the smallest amount of code that reproduces the issue), it makes it heaps easier for us to debug.

1 Like

Sorry for the misunderstanding I messaged you the new repl that you asked for

1 Like

I’ve been having the same problem for more than a week and I haven’t been able to fix it in any way. I’m pretty sure my code is error free. Please let me know when you find a solution

If you go into your account page, is your server location set to Asia or North America?
image

1 Like

Also, to all who are seeing this issue, we are willing to grant some cycles to test their bot in a Deployment. Please message me directly and I will send over the cycles

1 Like

I also encountered this problem. could you please send me the cycles

We have identified the issue. To combat abuse, we require all HTTP traffic to have either an SNI (Server Name Identification) or a Hostname header. Pyrogram connects to raw IP addresses without specifying an SNI or a Hostname header.

The issue here is that Pyrogram will need to update its codebase to support this, or users who intend to run Telegram bots on Replit will need to use a library other than Pyrogram (that is until they fix the issue) if they intend to host their Repl without using Deployments.

We have confirmed that using a Deployment does not encounter the issue as we do not require the same headers for those. If you Deploy your Repl (https://replit.com/deployments), you should be able to host your Telegram bots using Pyrogram without issues.

8 Likes

Not only Pyrogram but also Telethon started encountering a similar issue when i run it never ask me for phone number , just get stuck, is it the same issue?

1 Like

If it deals with Telegram, then yes, we believe any library that has recently started failing to connect to Telegram is caused by this issue. As we said above, the issue needs to be fixed by the developer of the library.

3 Likes

Pyrogram or Telethon, the usual full Telegram MTproto clients by default use tcp, unlike the botApi server libraries that connect to api.telegram.org who just wrap the calls to http server with MTproto backend (tdlib) those two are the MTproto backends.

Pyrogram or Telethon connect through sockets with just ip and port, so, is there a way to set “SNI” like server_hostname or anything like that through a socket connection? they both use asyncio.open_connection internally, can’t Replit exclude some of the legit ip addresses, including the ones related to Telegram from this anti-abuse for the main 5 MTproto servers, sorry for not knowing much about SNI part, but i want to modify the library to make it work but can’t wrap my head around it mixing the two.

The list of IPs pyrogram connects are 5 main datacenters (and other sub file download or cdn datacenters, but ignorable), they’re assigned to users depending on the phone number region once user signs up and all the bots they create will need to connect to their owner dc, ips are hardcoded in the data_center.py, they’re taken from internal methods of MTproto api offers (GetConfig), they’re official datacenter ips of Telegram.

However, from what i see MTproto servers also support http but less reliable or used protocol by default, Telethon has basic http transport implemtation, is that the way to go? to ditch the tcp in Replit and switch to http for pyrogram, haven’t tested the http part

Thank you for the context. I have sent your reply directly to the engineers. We will reply next week once we have all of the answers regarding the situation. I or an engineer will follow up then!

3 Likes

Do you have any update?

1 Like

Not at this time. We have other priorities at the moment but we should be able to take another look next week.

1 Like

what’s other priorities ?
that’s a bug on your replit

i have a same error with my repl…

1 Like

I apologize for the delay on this! The engineering team was able to find the core of the issue and has also found a workaround, which is to change the line here pyrogram/pyrogram/session/internals/data_center.py at efac17198b5fcaec1c2628c4bba0c288a4d617d4 · pyrogram/pyrogram · GitHub from 443 to 5222, and it should work.

We only allow HTTP traffic out of HTTP ports, such as 443. The issue here is that Telegram clients such as Pyrogram use MTProto (not HTTP) for their connection but run it through 443. So that is why changing the port from 443 to 5222 will work, as we won’t force it to be HTTP traffic.

6 Likes

Install durectly this forked git repo

you will be good to go for repl.it

pip install pyrogram-repl

and it works

1 Like

How I use this?͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏͏

Enter the command into the Shell.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.