פתרון בעיות: ערוצים
בעיות ערוץ כלליות
ערוץ נראה מחובר אך אין הודעות מגיעות
- בדקו את מזהה הבעלים. אם
ownerIdאינו מוגדר או שגוי, הודעות מכם עשויות להיות מנותבות כהודעות חיצוניות (לא-בעלים) עם הרשאות מוגבלות. - בדקו סיווג. אם סיווג הערוץ נמוך מזיהום הסשן, תגובות נחסמות על ידי כלל אין-כתיבה-למטה.
- בדקו את לוגי ה-daemon. הריצו
triggerfish logs --level WARNוחפשו שגיאות מסירה.
הודעות אינן נשלחות
הנתב מתעד כשלי מסירה. בדקו triggerfish logs עבור:
Channel send failedזה אומר שהנתב ניסה מסירה אך מתאם הערוץ החזיר שגיאה. השגיאה הספציפית תתועד לצדה.
התנהגות ניסיון חוזר
נתב הערוצים משתמש ב-backoff אקספוננציאלי עבור שליחות שנכשלו. אם הודעה נכשלת, היא ניסתנית מחדש עם השהיות הולכות וגדלות. לאחר שכל הניסיונות החוזרים מוצו, ההודעה נזרקת והשגיאה מתועדת.
Telegram
בוט אינו מגיב
- ודאו את הטוקן. היכנסו ל-@BotFather ב-Telegram, בדקו שהטוקן שלכם תקף ותואם למה שמאוחסן ב-keychain.
- שלחו הודעה ישירה לבוט. הודעות קבוצתיות דורשות שלבוט תהיה הרשאת הודעות קבוצתיות.
- בדקו שגיאות polling. Telegram משתמש ב-long polling. אם החיבור נופל, המתאם מתחבר מחדש אוטומטית, אבל בעיות רשת מתמשכות ימנעו קבלת הודעות.
הודעות מפוצלות למספר חלקים
ל-Telegram יש מגבלה של 4,096 תווים להודעה. תגובות ארוכות מחולקות אוטומטית. זו התנהגות רגילה.
פקודות בוט לא מופיעות בתפריט
המתאם רושם פקודות slash בהפעלה. אם הרישום נכשל, הוא מתעד אזהרה אך ממשיך לרוץ. זה לא קריטי. הבוט עדיין עובד; תפריט הפקודות פשוט לא יציג הצעות השלמה אוטומטית.
לא ניתן למחוק הודעות ישנות
Telegram אינו מאפשר לבוטים למחוק הודעות ישנות מ-48 שעות. ניסיונות למחוק הודעות ישנות נכשלים בשקט. זו מגבלה של API של Telegram.
Slack
בוט אינו מתחבר
Slack דורש שלושה אישורים:
| אישור | פורמט | היכן למצוא |
|---|---|---|
| Bot Token | xoxb-... | דף OAuth & Permissions בהגדרות אפליקציית Slack |
| App Token | xapp-... | Basic Information > App-Level Tokens |
| Signing Secret | מחרוזת Hex | Basic Information > App Credentials |
אם אחד מהשלושה חסר או לא תקף, החיבור נכשל. הטעות הנפוצה ביותר היא שכחת App Token, שהוא נפרד מ-Bot Token.
בעיות Socket Mode
Triggerfish משתמש ב-Socket Mode של Slack, לא במנויי אירועי HTTP. בהגדרות אפליקציית Slack שלכם:
- היכנסו ל-"Socket Mode" וודאו שהוא מופעל
- צרו app-level token עם scope של
connections:write - טוקן זה הוא ה-
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:
- בחרו את האפליקציה שלכם
- היכנסו להגדרות "Bot"
- הפעילו "Message Content Intent" תחת Privileged Gateway Intents
- שמרו שינויים
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. כדי שהודעות יגיעו:
- רשמו את כתובת ה-webhook ב-Meta Business Dashboard
- הגדירו את verify token. המתאם מריץ לחיצת יד אימות כש-Meta מתחבר לראשונה
- הפעילו את מאזין ה-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בדקו:
- האם signal-cli אכן רץ? בדקו
ps aux | grep signal-cli - האם הוא מאזין בנקודת הקצה הצפויה (TCP socket או Unix socket)?
- האם חשבון Signal צריך קישור? הריצו
triggerfish config add-channel signalכדי לעבור שוב את תהליך הקישור.
קישור מכשיר נכשל
Signal דורש קישור המכשיר לחשבון Signal שלכם דרך קוד QR. אם תהליך הקישור נכשל:
- ודאו ש-Signal מותקן בטלפון שלכם
- פתחו Signal > Settings > Linked Devices > Link New Device
- סרקו את קוד ה-QR שמוצג על ידי אשף ההגדרה
- אם קוד ה-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: INTERNALGoogle 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הגדירו אותו בתצורה שלכם כדי לקבל גישה מלאה לכלים.
