Skip to content

פתרון בעיות: ערוצים ​

בעיות ערוץ כלליות ​

ערוץ נראה מחובר אך אין הודעות מגיעות ​

  1. בדקו את מזהה הבעלים. אם ownerId אינו מוגדר או שגוי, הודעות מכם עשויות להיות מנותבות כהודעות חיצוניות (לא-בעלים) עם הרשאות מוגבלות.
  2. בדקו סיווג. אם סיווג הערוץ נמוך מזיהום הסשן, תגובות נחסמות על ידי כלל אין-כתיבה-למטה.
  3. בדקו את לוגי ה-daemon. הריצו triggerfish logs --level WARN וחפשו שגיאות מסירה.

הודעות אינן נשלחות ​

הנתב מתעד כשלי מסירה. בדקו triggerfish logs עבור:

Channel send failed

זה אומר שהנתב ניסה מסירה אך מתאם הערוץ החזיר שגיאה. השגיאה הספציפית תתועד לצדה.

התנהגות ניסיון חוזר ​

נתב הערוצים משתמש ב-backoff אקספוננציאלי עבור שליחות שנכשלו. אם הודעה נכשלת, היא ניסתנית מחדש עם השהיות הולכות וגדלות. לאחר שכל הניסיונות החוזרים מוצו, ההודעה נזרקת והשגיאה מתועדת.


Telegram ​

בוט אינו מגיב ​

  1. ודאו את הטוקן. היכנסו ל-@BotFather ב-Telegram, בדקו שהטוקן שלכם תקף ותואם למה שמאוחסן ב-keychain.
  2. שלחו הודעה ישירה לבוט. הודעות קבוצתיות דורשות שלבוט תהיה הרשאת הודעות קבוצתיות.
  3. בדקו שגיאות polling. Telegram משתמש ב-long polling. אם החיבור נופל, המתאם מתחבר מחדש אוטומטית, אבל בעיות רשת מתמשכות ימנעו קבלת הודעות.

הודעות מפוצלות למספר חלקים ​

ל-Telegram יש מגבלה של 4,096 תווים להודעה. תגובות ארוכות מחולקות אוטומטית. זו התנהגות רגילה.

פקודות בוט לא מופיעות בתפריט ​

המתאם רושם פקודות slash בהפעלה. אם הרישום נכשל, הוא מתעד אזהרה אך ממשיך לרוץ. זה לא קריטי. הבוט עדיין עובד; תפריט הפקודות פשוט לא יציג הצעות השלמה אוטומטית.

לא ניתן למחוק הודעות ישנות ​

Telegram אינו מאפשר לבוטים למחוק הודעות ישנות מ-48 שעות. ניסיונות למחוק הודעות ישנות נכשלים בשקט. זו מגבלה של API של Telegram.


Slack ​

בוט אינו מתחבר ​

Slack דורש שלושה אישורים:

אישורפורמטהיכן למצוא
Bot Tokenxoxb-...דף OAuth & Permissions בהגדרות אפליקציית Slack
App Tokenxapp-...Basic Information > App-Level Tokens
Signing Secretמחרוזת HexBasic Information > App Credentials

אם אחד מהשלושה חסר או לא תקף, החיבור נכשל. הטעות הנפוצה ביותר היא שכחת App Token, שהוא נפרד מ-Bot Token.

בעיות Socket Mode ​

Triggerfish משתמש ב-Socket Mode של Slack, לא במנויי אירועי HTTP. בהגדרות אפליקציית Slack שלכם:

  1. היכנסו ל-"Socket Mode" וודאו שהוא מופעל
  2. צרו app-level token עם scope של connections:write
  3. טוקן זה הוא ה-appToken (xapp-...)

אם Socket Mode אינו מופעל, ה-bot token לבדו אינו מספיק להודעות בזמן אמת.

הודעות נחתכות ​

ל-Slack יש מגבלה של 40,000 תווים. בניגוד ל-Telegram ו-Discord, Triggerfish חותך הודעות Slack במקום לפצל אותן. אם אתם נתקלים במגבלה זו באופן קבוע, שקלו לבקש מהסוכן שלכם לייצר פלט תמציתי יותר.

דליפות משאבי SDK בבדיקות ​

SDK של Slack מדליף פעולות אסינכרוניות בעת ייבוא. זו בעיה ידועה ב-upstream. בדיקות המשתמשות במתאם Slack צריכות sanitizeResources: false ו-sanitizeOps: false. זה אינו משפיע על שימוש בייצור.


Discord ​

בוט אינו יכול לקרוא הודעות בשרתים ​

Discord דורש את ה-Message Content privileged intent. בלעדיו, הבוט מקבל אירועי הודעה אבל תוכן ההודעה ריק.

תיקון: ב-Discord Developer Portal:

  1. בחרו את האפליקציה שלכם
  2. היכנסו להגדרות "Bot"
  3. הפעילו "Message Content Intent" תחת Privileged Gateway Intents
  4. שמרו שינויים

intents נדרשים לבוט ​

המתאם דורש intents אלו מופעלים:

  • Guilds
  • Guild Messages
  • Direct Messages
  • Message Content (privileged)

הודעות מחולקות ​

ל-Discord יש מגבלה של 2,000 תווים. הודעות ארוכות מפוצלות אוטומטית למספר הודעות.

מחוון הקלדה נכשל ​

המתאם שולח מחווני הקלדה לפני תגובות. אם לבוט אין הרשאה לשלוח הודעות בערוץ, מחוון ההקלדה נכשל בשקט (מתועד ברמת DEBUG). זה קוסמטי בלבד.

דליפות משאבי SDK ​

כמו Slack, SDK של discord.js מדליף פעולות אסינכרוניות בעת ייבוא. בדיקות צריכות sanitizeOps: false. זה אינו משפיע על ייצור.


WhatsApp ​

לא מתקבלות הודעות ​

WhatsApp משתמש במודל webhook. הבוט מאזין לבקשות HTTP POST נכנסות משרתי Meta. כדי שהודעות יגיעו:

  1. רשמו את כתובת ה-webhook ב-Meta Business Dashboard
  2. הגדירו את verify token. המתאם מריץ לחיצת יד אימות כש-Meta מתחבר לראשונה
  3. הפעילו את מאזין ה-webhook. המתאם מאזין בפורט 8443 כברירת מחדל. ודאו שפורט זה נגיש מהאינטרנט (השתמשו ב-reverse proxy או מנהרה)

אזהרת "ownerPhone not configured" ​

אם ownerPhone אינו מוגדר בתצורת ערוץ WhatsApp, כל השולחים מטופלים כבעלים. זה אומר שכל משתמש מקבל גישה מלאה לכל הכלים. זו בעיית אבטחה.

תיקון: הגדירו את מספר הטלפון של הבעלים בתצורה:

yaml
channels:
  whatsapp:
    ownerPhone: "+1234567890"

טוקן גישה פג תוקף ​

טוקני גישה של WhatsApp Cloud API יכולים לפוג. אם שליחות מתחילות להיכשל עם שגיאות 401, חדשו את הטוקן בלוח הבקרה של Meta ועדכנו:

bash
triggerfish config set-secret whatsapp:accessToken <new-token>

Signal ​

signal-cli לא נמצא ​

ערוץ Signal דורש signal-cli, אפליקציית Java של צד שלישי. Triggerfish מנסה להתקין אותו אוטומטית במהלך ההגדרה, אך זה יכול להיכשל אם:

  • Java (JRE 21+) אינו זמין וההתקנה האוטומטית של JRE 25 נכשלה
  • ההורדה נחסמה על ידי הגבלות רשת
  • ספריית היעד אינה ניתנת לכתיבה

התקנה ידנית:

bash
# התקינו signal-cli ידנית
# ראו https://github.com/AsamK/signal-cli להוראות

שרת signal-cli אינו נגיש ​

לאחר הפעלת signal-cli, Triggerfish ממתין עד 60 שניות שיהפוך נגיש. אם זה חורג מהזמן:

signal-cli daemon (tcp) not reachable within 60s

בדקו:

  1. האם signal-cli אכן רץ? בדקו ps aux | grep signal-cli
  2. האם הוא מאזין בנקודת הקצה הצפויה (TCP socket או Unix socket)?
  3. האם חשבון Signal צריך קישור? הריצו triggerfish config add-channel signal כדי לעבור שוב את תהליך הקישור.

קישור מכשיר נכשל ​

Signal דורש קישור המכשיר לחשבון Signal שלכם דרך קוד QR. אם תהליך הקישור נכשל:

  1. ודאו ש-Signal מותקן בטלפון שלכם
  2. פתחו Signal > Settings > Linked Devices > Link New Device
  3. סרקו את קוד ה-QR שמוצג על ידי אשף ההגדרה
  4. אם קוד ה-QR פג תוקף, התחילו מחדש את תהליך הקישור

אי-התאמת גרסת signal-cli ​

Triggerfish נעוץ בגרסה ידועה-כטובה של signal-cli. אם התקנתם גרסה שונה, ייתכן שתראו אזהרה:

Signal CLI version older than known-good

זה לא קריטי אך עשוי לגרום לבעיות תאימות.


Email ​

חיבור IMAP נכשל ​

מתאם האימייל מתחבר לשרת ה-IMAP שלכם לדואר נכנס. בעיות נפוצות:

  • אישורים שגויים. ודאו שם משתמש וסיסמה של IMAP.
  • פורט 993 חסום. המתאם משתמש ב-IMAP דרך TLS (פורט 993). רשתות מסוימות חוסמות זאת.
  • נדרשת סיסמה ספציפית לאפליקציה. Gmail וספקים אחרים דורשים סיסמאות ספציפיות לאפליקציה כאשר 2FA מופעל.

הודעות שגיאה שעשויות להופיע:

  • IMAP LOGIN failed - שם משתמש או סיסמה שגויים
  • IMAP connection not established - לא ניתן להגיע לשרת
  • IMAP connection closed unexpectedly - השרת ניתק את החיבור

כשלי שליחת SMTP ​

מתאם האימייל שולח דרך relay API של SMTP (לא SMTP ישיר). אם שליחות נכשלות עם שגיאות HTTP:

  • 401/403: מפתח API לא תקף
  • 429: הגבלת קצב
  • 5xx: שירות ה-relay מושבת

סקירת IMAP נעצרת ​

המתאם סורק אימיילים חדשים כל 30 שניות. אם הסקירה נכשלת, השגיאה מתועדת אך אין חיבור מחדש אוטומטי. אתחלו מחדש את ה-daemon כדי ליצור מחדש את חיבור ה-IMAP.

זו מגבלה ידועה. ראו בעיות ידועות.


WebChat ​

שדרוג WebSocket נדחה ​

מתאם WebChat מאמת חיבורים נכנסים:

  • כותרות גדולות מדי (431). גודל הכותרות המשולב חורג מ-8,192 בתים. זה יכול לקרות עם cookies גדולים מדי או כותרות מותאמות.
  • דחיית CORS. אם allowedOrigins מוגדר, כותרת Origin חייבת להתאים. ברירת המחדל היא ["*"] (אפשר הכל).
  • פריימים פגומים. JSON לא תקף בפריימים של WebSocket מתועד ברמת WARN והפריים נזרק.

סיווג ​

WebChat מוגדר כברירת מחדל לסיווג PUBLIC. מבקרים לעולם אינם מטופלים כבעלים. אם אתם צריכים סיווג גבוה יותר ל-WebChat, הגדירו אותו במפורש:

yaml
channels:
  webchat:
    classification: INTERNAL

Google Chat ​

כשלי סקירת PubSub ​

Google Chat משתמש ב-Pub/Sub למסירת הודעות. אם הסקירה נכשלת:

Google Chat PubSub poll failed

בדקו:

  • אישורי Google Cloud תקפים (בדקו את credentials_ref בתצורה)
  • מנוי ה-Pub/Sub קיים ולא נמחק
  • לחשבון השירות יש תפקיד pubsub.subscriber

הודעות קבוצתיות נדחות ​

אם מצב קבוצה אינו מוגדר, הודעות קבוצתיות עשויות להיזרק בשקט:

Google Chat group message denied by group mode

הגדירו defaultGroupMode בתצורת ערוץ Google Chat.

ownerEmail לא מוגדר ​

ללא ownerEmail, כל המשתמשים מטופלים כלא-בעלים:

Google Chat ownerEmail not configured, defaulting to non-owner

הגדירו אותו בתצורה שלכם כדי לקבל גישה מלאה לכלים.