Repository navigation
ERROR Relay failed: timeout #327
Description
Activity
The exact same problem is in #313, and there's a lot of explanation about it there. Definitely check it out. It's better to also close this issue since there's already an issue open about it.
@armanfallah82 —
Relay failed: timeoutاز حدود ساعت ۱۳ ظهر تهران، با ساخت deployment جدید + gmail جدید همون مشکل ادامه دارد. این بهاحتمال زیاد همان مسئله #313 است.چندین کاربر گزارش دادند که Apps Script
UrlFetchApp.fetch()outbound از داخل ایران از حدود ۱۲ ظهر دیروز filter شده — صرف نظر از deployment ID یا account جدید چون مشکل در سطحIran→Apps-Scriptrequest است، نه deployment.تأیید کنید که این همان مسئله است:
curl -s -X POST 'https://script.google.com/macros/s/YOUR_DEPLOYMENT_ID/exec' \ -H 'Content-Type: application/json' \ -d '{"k":"YOUR_AUTH_KEY","u":"https://httpbin.org/get","m":"GET"}' \ --max-time 15
مستقیم از داخل ایران بدون mhrv-rs اجرا کنید. اگر:
- timeout میده = همان #313 (Apps Script outbound from Iran filtered). به آن thread برای continue discussion + workarounds منتقل بشید.
- JSON
{"r":"...","s":200,...}برمیگردونه = Apps Script کار میکنه. مشکل path mhrv-rs است. log debug بفرستید. - HTML برمیگردونه = deployment public نیست. Deploy settings → "Anyone" access.
نسخه v1.7.8 (یا v1.7.9): auto-blacklist deploymentهای stuck داره. اگر فقط برخی deploymentها timeout میدن (نه همه)، sessionها خود به خود به deploymentهای healthy روتو میکنن. اگر همه timeout میدن، blacklist هم کمکی نمیکنه چون هیچ کدام در دسترس نیست.
خلاصه:
- Direct curl را اجرا کنید + نتیجه share کنید
- اگر اجرای curl هم timeout = #313. این issue را میبندم و آنجا ادامه discussion
- اگر JSON = bug در mhrv-rs path. توجه به log + version بدید
این مشکل احتمالاً Iran-side (filter) است نه bug در mhrv-rs. این issue را همین الان نمیبندم تا confirmed بشه.
[reply via Anthropic Claude | reviewed by @therealaleph]
curl: (35) Recv failure: Connection reset by peer
در خروجی دستورتان این رو دریافت کردم مقادیر هم جایگزاری کردم
version mhrv-rs هم 17.8 هستش@armanfallah82 —
Connection reset by peerخبر مهمی است که حدسهای قبلی رو تنگتر میکنه. این یعنی ISP ایران خود middlebox میانه connection رو RST میکنه، نه اینکه packetها timeout بشن — یعنی DPI هست، نه firewall ساده.این مسئله رو در #313 تحلیل کردم. خلاصه:
- Direct curl به
script.google.comدر ISP شما RST میگیره از middlebox ایران - این به این معنا که traffic Iran→script.google.com با SNI=script.google.com فیلتر میشه
- mhrv-rs از SNI rewrite استفاده میکنه (SNI=www.google.com بجای script.google.com)، پس اگر فیلتر فقط روی SNI باشه، mhrv-rs بدون تأثیر میمونه
ولی شما در apps_script mode هم timeout میگیرید — یعنی mhrv-rs هم به همون IP که بهطور پیشفرض ست شده (
216.239.38.120) timeout میگیره. این یعنی فیلتر یا روی destination IP یا روی چیز عمیقتر است.Action:
google_ipمتفاوتی امتحان کنیددهها Google front IP وجود داره. اگر
216.239.38.120در black list ISP باشد، دیگران ممکن است نباشند:# پنج تا alternative IP رو تست کنید: for ip in 216.239.38.120 142.251.214.78 172.217.18.78 64.233.180.78 74.125.196.78; do echo -n "$ip: " timeout 5 openssl s_client -connect "$ip:443" -servername www.google.com \ < /dev/null 2>/dev/null \ | grep -E "subject=|issuer=" | head -1 || echo "FAIL" done
IPهایی که
subject=...Googleبرمیگردونن = reachable. یکی از اونها رو در mhrv-rsconfig.jsonبهجایgoogle_ipپیشفرض ست کنید:{ "google_ip": "142.251.214.78", // یا هر IP که در test کار کرد "front_domain": "www.google.com", ... }Restart mhrv-rs + ببینید ارور
Relay failed: timeoutرفع میشه یا نه.اگر هیچکدام از IPها کار نکرد: فیلتر روی چیزی عمیقتر از destination IP است (مثل TLS fingerprint مخصوص mhrv-rs که Iran DPI یاد گرفته). در این مورد، tracked در roadmap #313 برای v1.8.x شامل: IP rotation list داخل mhrv-rs + TLS fingerprint randomization (JA3 mimic Chrome).
v1.7.9 deployment auto-blacklist (#319): اگر برخی IPها کار میکنند و برخی نه، mhrv-rs خود به خود deploymentهای که زیاد timeout دارن رو blacklist میکنه + بعد از ۲ دقیقه retry میکنه. ولی این بر اساس deployment ID است نه IP — برای رفع IP-level filter باید
google_ipرو manually عوض کنید.این issue رو میبندم چون مسئله سمت ISP است نه bug در mhrv-rs. ادامه discussion + workaround در #313. نتیجه IP rotation رو در آنجا share کنید — به ما کمک میکنه دیگران رو هم guide کنیم.
[reply via Anthropic Claude | reviewed by @therealaleph]
- Direct curl به
بنده با عوض کردن جیمیل و ساخت Deploment جدید هم این مشکل رو دارم تقریبا از ساعت ۱۳
در حالت apps script
2026-04-27T13:37:27.413613Z ERROR Relay failed: timeout2026-04-27T13:37:27.852853Z ERROR Relay failed: timeout2026-04-27T13:37:30.219530Z ERROR Relay failed: timeout