Skip to content

FA Troubleshooting

Arian Omrani edited this page Oct 11, 2026 · 6 revisions

عیب‌یابی

زبان: English · فارسی

مشکل علت و راه‌حل
config error: env var X is not set فایل ${X} را به کار برده ولی متغیر تنظیم نشده. آن را export کنید، یا secret را به env: مرحله‌ی CI اضافه کنید.
سایت down است ولی هشداری نمی‌آید سایت باید down_after بار پشت‌سرهم شکست بخورد (پیش‌فرض ۲). events، بازه‌ی maintenance (به UTC) و پیام notify failed در stderr را نگاه کنید.
notify failed: ... No such file or directory: 'shoutrrr' نه Docker قابل استفاده است و نه فایل اجرایی در PATH. Docker را روشن کنید، فایل اجرایی را نصب کنید (pulsecheck init این کار را می‌کند) یا shoutrrr_bin را تنظیم کنید.
Docker نصب است ولی فایل اجرایی استفاده می‌شود docker info برای کاربر شما شکست می‌خورد (daemon خاموش است یا دسترسی ندارید). مشکل را حل کنید یا shoutrrr_bin: docker بگذارید.
notify failed: با یک خطای shoutrrr آدرس یا توکن غلط است. shoutrrr verify --url ... و pulsecheck test-notify را اجرا کنید.
هشدار DOWN بارها تکرار می‌شود وضعیت بین اجراها از بین می‌رود (cache پاک شده، runnerها cache مشترک ندارند، کانتینر volume ندارد). state_file را روی جای پایدار بگذارید.
سایت مدام بین up و degraded می‌رود slow_ms به زمان پاسخ معمول نزدیک است. بیشترش کنید.
ping در Docker یا CI همیشه شکست می‌خورد iputils-ping را نصب کنید. بعضی کانتینرها raw socket را هم ممنوع کرده‌اند؛ در آن صورت type: tcp را به کار ببرید.
خطای گواهی HTTPS بررسی با همان خطایی که در هشدار آمده شکست می‌خورد. گواهی را درست کنید؛ راهی برای نادیده گرفتن اعتبارسنجی وجود ندارد.
زمان‌بندی گیت‌هاب متوقف شده اگر ۶۰ روز در مخزن فعالیتی نباشد، زمان‌بندی متوقف می‌شود. در تب Actions دوباره روشنش کنید.
endpoint روی Vercel جواب 401 می‌دهد CRON_SECRET تنظیم نشده، یا هدر Authorization: Bearer … با آن یکی نیست.
Vercel جواب 500 … state store missing می‌دهد Upstash Redis را اضافه کنید (vercel integration add upstash/upstash-kv) یا UPSTASH_REDIS_REST_URL و UPSTASH_REDIS_REST_TOKEN را تنظیم کنید.
deploy روی Vercel به‌خاطر عبارت cron خطا می‌دهد Hobby فقط روزی یک اجرا قبول می‌کند. از 0 0 * * * استفاده کنید، یا endpoint را از گیت‌هاب صدا بزنید (سرورلس).
notify failed: 'xyz://' is not supported here روی Cloudflare فقط آدرس‌های داخلی (telegram، discord، slack، ntfy، gotify، pushover و …) کار می‌کنند؛ Vercel برای بقیه shoutrrr واقعی را دانلود می‌کند. برای سرویس‌های دیگر از حالت CLI، CI یا cron استفاده کنید.
skipped, type 'tcp' is not supported on this platform Cloudflare فقط بررسی HTTP دارد و Vercel بررسی ping را رد می‌کند.
اجرای Cloudflare با «exceeded CPU time» تمام می‌شود پلن رایگان برای هر اجرای cron فقط ۱۰ میلی‌ثانیه CPU می‌دهد. پلن پولی را به کار ببرید.
بعد از چند ساعت خطای نوشتن KV در Cloudflare KV رایگان روزی ۱۰۰۰ نوشتن دارد و cron یک‌دقیقه‌ای ۱۴۴۰ نوشتن لازم دارد. بازه را ۲ دقیقه یا بیشتر کنید یا به پلن پولی بروید.
config error: ...: unknown key(s) [...] یک کلید غلط نوشته شده یا وجود ندارد. پیام اسم کلید و جای آن را می‌گوید.
هشدار گواهی نمی‌آید ssl_warn_days فقط برای سایت‌های https است و گواهی باید در کمتر از همان تعداد روز منقضی شود. روی Cloudflare هم اجرا نمی‌شود.
یادآوری‌ها تکرار نمی‌شوند remind_every به دقیقه است و بعد از اولین هشدار down شروع می‌شود. هشدارهای داخل بازه‌ی maintenance دور ریخته می‌شوند.
no config found. Run pulsecheck init نه ./pulsecheck.yml وجود دارد و نه ~/.config/pulsecheck/pulsecheck.yml. pulsecheck init را اجرا کنید یا -c FILE بدهید.
.env را پر کرده‌ام ولی باز env var X is not set می‌گیرم .env باید کنار فایل تنظیم باشد و هر خط به شکل X=value. مقدار خالی یعنی تنظیم نشده. pulsecheck env نشان می‌دهد کدام متغیرها هنوز خالی‌اند.
pulsecheck init می‌گوید crontab پیدا نشد cron را نصب کنید (sudo apt install cron)، یا از --no-cron و یک systemd timer استفاده کنید.
OpenTelemetry: otel export failed: HTTP 4xx endpoint یا هدر احراز هویت غلط است. endpoint آدرس پایه است (مثلاً با پورت ۴۳۱۸) و /v1/metrics و /v1/logs خودکار به آن اضافه می‌شود.
سایتِ ip_version: 6 همیشه down است این ماشین یا runner اتصال IPv6 ندارد، یا سرور رکورد AAAA ندارد. از همان‌جا curl -6 -I <url> را امتحان کنید. ممکن است runnerهای گیت‌هاب IPv6 نداشته باشند؛ برای بررسی IPv6 از cron روی سرور خودتان استفاده کنید.
skipped, ip_version is not supported on Cloudflare fetch در Cloudflare خودش خانواده‌ی آدرس را انتخاب می‌کند. بررسی‌های IPv6 را با CLI، cron یا Vercel انجام دهید.

برای اشکال‌زدایی pulsecheck run --force را اجرا کنید؛ برای هر سایت یک خط با وضعیت، زمان و خطا چاپ می‌کند.

Clone this wiki locally