Feilsøking: Kanaler
Generelle kanalproblemer
Kanalen ser tilkoblet ut, men ingen meldinger kommer frem
- Sjekk eier-ID. Hvis
ownerIdikke er satt eller er feil, kan meldinger fra deg bli ruter som eksterne (ikke-eier) meldinger med begrensede tillatelser. - Sjekk klassifisering. Hvis kanalens klassifisering er lavere enn sesjons-Taint, blokkeres svar av no-write-down-regelen.
- Sjekk daemonloggene. Kjør
triggerfish logs --level WARNog se etter leveringsfeil.
Meldinger sendes ikke
Ruteren logger leveringsfeil. Sjekk triggerfish logs for:
Channel send failedDette betyr at ruteren forsøkte levering, men kanaladapteren returnerte en feil. Den spesifikke feilen vil bli logget ved siden av.
Forsøksatferd
Kanalruteren bruker eksponentiell backoff for mislykkede sendinger. Hvis en melding mislykkes, prøves den på nytt med økende forsinkelser. Etter at alle forsøk er utmattet, droppes meldingen og feilen logges.
Telegram
Boten svarer ikke
- Verifiser tokenet. Gå til @BotFather på Telegram, sjekk at tokenet ditt er gyldig og samsvarer med det som er lagret i nøkkelringen.
- Send melding direkte til boten. Gruppemeldinger krever at boten har gruppemeldingstillatelser.
- Sjekk etter pollingfeil. Telegram bruker long polling. Hvis tilkoblingen faller, kobler adapteren seg til på nytt automatisk, men vedvarende nettverksproblemer vil forhindre mottak av meldinger.
Meldinger deles i flere deler
Telegram har en grense på 4 096 tegn per melding. Lange svar deles automatisk opp. Dette er normal atferd.
Bot-kommandoer vises ikke i menyen
Adapteren registrerer slash-kommandoer ved oppstart. Hvis registrering mislykkes, logges en advarsel, men den fortsetter å kjøre. Dette er ikke fatalt. Boten fungerer fortsatt; kommandomenyen viser bare ikke autofullføringforslag.
Kan ikke slette gamle meldinger
Telegram lar ikke boter slette meldinger eldre enn 48 timer. Forsøk på å slette gamle meldinger mislykkes lydløst. Dette er en Telegram API-begrensning.
Slack
Boten kobler ikke til
Slack krever tre legitimasjonselementer:
| Legitimasjon | Format | Hvor du finner det |
|---|---|---|
| Bot Token | xoxb-... | OAuth & Permissions-siden i Slack app-innstillinger |
| App Token | xapp-... | Basic Information > App-Level Tokens |
| Signing Secret | Heksadesimal streng | Basic Information > App Credentials |
Hvis noen av de tre mangler eller er ugyldige, mislykkes tilkoblingen. Den vanligste feilen er å glemme App Token, som er separat fra Bot Token.
Socket Mode-problemer
Triggerfish bruker Slacks Socket Mode, ikke HTTP-hendelsesabonnementer. I Slack app-innstillingene:
- Gå til «Socket Mode» og sørg for at det er aktivert
- Opprett et app-nivå token med
connections:write-omfang - Dette tokenet er
appToken(xapp-...)
Hvis Socket Mode ikke er aktivert, er bot-tokenet alene ikke nok for sanntids meldinger.
Meldinger trunkeres
Slack har en grense på 40 000 tegn. I motsetning til Telegram og Discord, trunkerer Triggerfish Slack-meldinger i stedet for å dele dem. Hvis du regelmessig treffer denne grensen, vurder å be agenten produsere mer konsist utdata.
SDK-ressurslekkasjer i tester
Slack SDK lekker asynkrone operasjoner ved import. Dette er et kjent upstream-problem. Tester som bruker Slack-adapteren trenger sanitizeResources: false og sanitizeOps: false. Dette påvirker ikke produksjonsbruk.
Discord
Boten kan ikke lese meldinger i servere
Discord krever Message Content privileged intent. Uten det mottar boten meldingshendelser, men meldingsinnholdet er tomt.
Løsning: I Discord Developer Portal:
- Velg applikasjonen din
- Gå til «Bot»-innstillinger
- Aktiver «Message Content Intent» under Privileged Gateway Intents
- Lagre endringer
Nødvendige bot-intents
Adapteren krever disse intentene aktivert:
- Guilds
- Guild Messages
- Direct Messages
- Message Content (privileged)
Meldinger deles opp
Discord har en grense på 2 000 tegn. Lange meldinger deles automatisk opp i flere meldinger.
Skriveindikator mislyktes
Adapteren sender skriveindikatorer før svar. Hvis boten mangler tillatelse til å sende meldinger i en kanal, mislykkes skriveindikatoren lydløst (logget på DEBUG-nivå). Dette er kun kosmetisk.
SDK-ressurslekkasjer
Som Slack lekker discord.js SDK asynkrone operasjoner ved import. Tester trenger sanitizeOps: false. Dette påvirker ikke produksjon.
WhatsApp
Ingen meldinger mottas
WhatsApp bruker en webhook-modell. Boten lytter etter innkommende HTTP POST-forespørsler fra Metas servere. For at meldinger skal komme frem:
- Registrer webhook-URL i Meta Business Dashboard
- Konfigurer verifiseringstokenet. Adapteren kjører et verifiseringshandtrykk når Meta kobler til første gang
- Start webhook-lytteren. Adapteren lytter på port 8443 som standard. Sørg for at denne porten er nåbar fra internett (bruk en omvendt proxy eller tunnel)
«ownerPhone not configured»-advarsel
Hvis ownerPhone ikke er satt i WhatsApp-kanalkonfigurasjonen, behandles alle sendere som eieren. Dette betyr at enhver bruker får full tilgang til alle verktøy. Dette er et sikkerhetsproblem.
Løsning: Sett eiertelefonummeret i konfigurasjonen:
yaml
channels:
whatsapp:
ownerPhone: "+1234567890"Tilgangstoken utløpt
WhatsApp Cloud API-tilgangstokener kan utløpe. Hvis sendinger begynner å mislykkes med 401-feil, regenerer tokenet i Meta-dashbordet og oppdater det:
bash
triggerfish config set-secret whatsapp:accessToken <nytt-token>Signal
signal-cli ikke funnet
Signal-kanalen krever signal-cli, en tredjeparts Java-applikasjon. Triggerfish prøver å auto-installere det under oppsett, men dette kan mislykkes hvis:
- Java (JRE 21+) ikke er tilgjengelig og auto-installasjon av JRE 25 mislyktes
- Nedlastingen ble blokkert av nettverksbegrensninger
- Målmappen ikke er skrivbar
Manuell installasjon:
bash
# Installer signal-cli manuelt
# Se https://github.com/AsamK/signal-cli for instruksjonersignal-cli daemon ikke nåbar
Etter oppstart av signal-cli venter Triggerfish i opptil 60 sekunder på at det skal bli nåbar. Hvis dette tidsavbrytes:
signal-cli daemon (tcp) not reachable within 60sSjekk:
- Kjører signal-cli faktisk? Sjekk
ps aux | grep signal-cli - Lytter det på det forventede endepunktet (TCP-socket eller Unix-socket)?
- Trenger Signal-kontoen å kobles til? Kjør
triggerfish config add-channel signalfor å gå gjennom koblingsprosessen igjen.
Enhetskoblimg mislyktes
Signal krever kobling av enheten til Signal-kontoen din via QR-kode. Hvis koblingsprosessen mislykkes:
- Sørg for at Signal er installert på telefonen din
- Åpne Signal > Innstillinger > Koblede enheter > Koble ny enhet
- Skann QR-koden vist av oppsettveiviseren
- Hvis QR-koden utløp, start koblingsprosessen på nytt
signal-cli versjonsmismatch
Triggerfish fester seg til en kjent-god versjon av signal-cli. Hvis du installerte en annen versjon, kan du se en advarsel:
Signal CLI version older than known-goodDette er ikke fatalt, men kan forårsake kompatibilitetsproblemer.
E-post
IMAP-tilkobling mislykkes
E-postadapteren kobler seg til IMAP-serveren for innkommende post. Vanlige problemer:
- Feil legitimasjon. Verifiser IMAP-brukernavn og passord.
- Port 993 blokkert. Adapteren bruker IMAP over TLS (port 993). Noen nettverk blokkerer dette.
- App-spesifikt passord kreves. Gmail og andre leverandører krever app-spesifikke passord når 2FA er aktivert.
Feilmeldinger du kan se:
IMAP LOGIN failed- feil brukernavn eller passordIMAP connection not established- kan ikke nå serverenIMAP connection closed unexpectedly- serveren droppet tilkoblingen
SMTP-sendefeil
E-postadapteren sender via et SMTP API-relé (ikke direkte SMTP). Hvis sendinger mislykkes med HTTP-feil:
- 401/403: API-nøkkelen er ugyldig
- 429: Hastighetsbegrenset
- 5xx: Reléetjenesten er nede
IMAP-polling stopper
Adapteren poller etter nye e-poster hvert 30. sekund. Hvis polling mislykkes, logges feilen, men det er ingen automatisk gjentilkobling. Start daemonen på nytt for å gjenopprette IMAP-tilkoblingen.
Dette er en kjent begrensning. Se Kjente problemer.
WebChat
WebSocket-oppgradering avvist
WebChat-adapteren validerer innkommende tilkoblinger:
- Overskrifter for store (431). Den samlede overskriftstørrelsen overskrider 8 192 byte. Dette kan skje med for store informasjonskapsler eller egendefinerte overskrifter.
- CORS-avvisning. Hvis
allowedOriginser konfigurert, må Origin-overskriften samsvare. Standard er["*"](tillat alle). - Feilformede rammer. Ugyldig JSON i WebSocket-rammer logges på WARN-nivå og rammen droppes.
Klassifisering
WebChat er som standard PUBLIC-klassifisering. Besøkende behandles aldri som eier. Hvis du trenger høyere klassifisering for WebChat, sett det eksplisitt:
yaml
channels:
webchat:
classification: INTERNALGoogle Chat
PubSub-pollingfeil
Google Chat bruker Pub/Sub for meldingslevering. Hvis polling mislykkes:
Google Chat PubSub poll failedSjekk:
- Google Cloud-legitimasjon er gyldig (sjekk
credentials_refi konfigurasjonen) - Pub/Sub-abonnementet eksisterer og ikke er slettet
- Tjenestekontoen har
pubsub.subscriber-rollen
Gruppemeldinger nektet
Hvis gruppemodus ikke er konfigurert, kan gruppemeldinger bli stille droppet:
Google Chat group message denied by group modeKonfigurer defaultGroupMode i Google Chat-kanalens konfigurasjon.
ownerEmail ikke konfigurert
Uten ownerEmail behandles alle brukere som ikke-eier:
Google Chat ownerEmail not configured, defaulting to non-ownerSett det i konfigurasjonen for å få full verktøytilgang.
