Skip to content

Feilsøking: Integrasjoner ​

Google Workspace ​

OAuth-token utløpt eller tilbakekalt ​

Google OAuth-oppdateringstokener kan tilbakekalles (av brukeren, av Google, eller ved inaktivitet). Når dette skjer:

Google OAuth token exchange failed

Eller du vil se 401-feil på Google API-kall.

Løsning: Autentiser på nytt:

bash
triggerfish connect google

Dette åpner en nettleser for OAuth-samtykkeflyten. Etter å ha gitt tilgang lagres de nye tokenene i nøkkelringen.

«No refresh token» ​

OAuth-flyten returnerte et tilgangstoken, men ikke noe oppdateringstoken. Dette skjer når:

  • Du har allerede autorisert appen før (Google sender bare oppdateringstokenet ved den første autorisasjonen)
  • OAuth-samtykke-skjermen ba ikke om offline-tilgang

Løsning: Trekk tilbake appens tilgang i Google-kontoinnstillinger, og kjør deretter triggerfish connect google igjen. Denne gangen sender Google et nytt oppdateringstoken.

Forebygging av samtidige oppdateringer ​

Hvis flere forespørsler utløser en tokenoppdatering samtidig, serialiserer Triggerfish dem slik at bare én oppdateringsforespørsel sendes. Hvis du ser tidsavbrudd under tokenoppdatering, kan det hende at den første oppdateringen tar for lang tid.


GitHub ​

«GitHub token not found in keychain» ​

GitHub-integrasjonen lagrer Personal Access Token i OS-nøkkelringen under nøkkelen github-pat.

Løsning:

bash
triggerfish connect github
# eller manuelt:
triggerfish config set-secret github-pat ghp_...

Tokenformat ​

GitHub støtter to tokenformater:

  • Klassiske PAT-er: ghp_...
  • Finkornet PAT-er: github_pat_...

Begge fungerer. Oppsettveiviseren verifiserer tokenet ved å kalle GitHub API. Hvis verifisering mislykkes:

GitHub token verification failed
GitHub API request failed

Dobbeltsjekk at tokenet har de nødvendige omfangene. For full funksjonalitet trenger du: repo, read:org, read:user.

Kloningsfeil ​

GitHub klone-verktøyet har automatisk gjenforsøkslogikk:

  1. Første forsøk: kloner med angitt --branch
  2. Hvis grenen ikke eksisterer: prøver på nytt uten --branch (bruker standardgrenen)

Hvis begge forsøkene mislykkes:

Clone failed on retry
Clone failed

Sjekk:

  • Tokenet har repo-omfang
  • Repositoriet eksisterer og tokenet har tilgang
  • Nettverkstilkobling til github.com

Hastighetsbegrensning ​

GitHubs API-hastighetsbegrensning er 5 000 forespørsler/time for autentiserte forespørsler. Det gjenværende antallet og tilbakestillingstidspunktet ekstraheres fra svarhoder og inkluderes i feilmeldinger:

Rate limit: X remaining, resets at HH:MM:SS

Det er ingen automatisk backoff. Vent på at hastighetsbegrensningsvinduet tilbakestilles.


Notion ​

«Notion enabled but token not found in keychain» ​

Notion-integrasjonen krever et internt integrasjonstoken lagret i nøkkelringen.

Løsning:

bash
triggerfish connect notion

Dette ber om tokenet og lagrer det i nøkkelringen etter å ha verifisert det med Notion API.

Tokenformat ​

Notion bruker to tokenformater:

  • Interne integrasjonstokener: ntn_...
  • Eldre tokener: secret_...

Begge aksepteres. Tilkoblingsveiviseren validerer formatet før lagring.

Hastighetsbegrensning (429) ​

Notions API er hastighetsbegrenset til omtrent 3 forespørsler per sekund. Triggerfish har innebygd hastighetsbegrensning (konfigurerbar) og gjenforsøkslogikk:

  • Standardhastighet: 3 forespørsler/sekund
  • Gjenforsøk: opptil 3 ganger ved 429
  • Backoff: eksponentiell med jitter, starter på 1 sekund
  • Respekterer Retry-After-headeren fra Notions svar

Hvis du fortsatt treffer hastighetsbegrensninger:

Notion API rate limited, retrying

Reduser samtidige operasjoner eller senk hastighetsbegrensningen i konfigurasjonen.

404 Ikke funnet ​

Notion: 404 Not Found

Ressursen eksisterer, men er ikke delt med integrasjonen din. I Notion:

  1. Åpne siden eller databasen
  2. Klikk «...»-menyen > «Connections»
  3. Legg til Triggerfish-integrasjonen din

«client_secret removed» (Brytende endring) ​

I en sikkerhetsoppdatering ble client_secret-feltet fjernet fra Notion-konfigurasjonen. Hvis du har dette feltet i triggerfish.yaml, fjern det. Notion bruker nå kun OAuth-tokenet lagret i nøkkelringen.

Nettverksfeil ​

Notion API network request failed
Notion API network error: <melding>

API-et er ikke nåbar. Sjekk nettverkstilkoblingen din. Hvis du er bak en bedriftsproxyserver, må Notions API (api.notion.com) være tilgjengelig.


CalDAV (Kalender) ​

Legitimasjonsløsing mislyktes ​

CalDAV credential resolution failed: missing username
CalDAV credential resolution failed: secret not found

CalDAV-integrasjonen trenger et brukernavn og passord:

yaml
caldav:
  server_url: "https://calendar.example.com/dav"
  username: "ditt-brukernavn"
  credential_ref: "secret:caldav:password"

Lagre passordet:

bash
triggerfish config set-secret caldav:password <ditt-passord>

Oppdagingsfeil ​

CalDAV bruker en flertrinnsprosess for oppdaging:

  1. Finn principal-URL (PROPFIND på well-known-endepunkt)
  2. Finn calendar-home-set
  3. List tilgjengelige kalendere

Hvis noe trinn mislykkes:

CalDAV principal discovery failed
CalDAV calendar-home-set discovery failed
CalDAV calendar listing failed

Vanlige årsaker:

  • Feil server-URL (noen servere trenger /dav/principals/ eller /remote.php/dav/)
  • Legitimasjon avvist (feil brukernavn/passord)
  • Serveren støtter ikke CalDAV (noen servere annonserer WebDAV men ikke CalDAV)

ETag-mismatch ved oppdatering/sletting ​

ETag mismatch — the event was modified by another client. Fetch the latest version and retry.

CalDAV bruker ETager for optimistisk samtidihetskontroll. Hvis en annen klient (telefon, nett) endret hendelsen mellom din lesing og oppdatering, stemmer ikke ETag-en.

Løsning: Agenten bør hente hendelsen på nytt for å få gjeldende ETag, og deretter prøve operasjonen på nytt. Dette håndteres automatisk i de fleste tilfeller.

«CalDAV credentials not available, executor deferred» ​

CalDAV-eksekutøren starter i en utsatt tilstand hvis legitimasjon ikke kan løses ved oppstart. Dette er ikke fatalt; eksekutøren rapporterer feil hvis du prøver å bruke CalDAV-verktøy.


MCP (Model Context Protocol)-servere ​

Server ikke funnet ​

MCP server '<navn>' not found

Verktøykallets referanser til en MCP-server som ikke er konfigurert. Sjekk mcp_servers-seksjonen i triggerfish.yaml.

Server-binærfil ikke i PATH ​

MCP-servere startes som underprosesser. Hvis binærfilen ikke er funnet:

MCP server '<navn>': <valideringsfeil>

Vanlige problemer:

  • Kommandoen (f.eks. npx, python, node) er ikke i daemonens PATH
  • systemd/launchd PATH-problem: Daemonen tar opp din PATH ved installasjonstidspunktet. Hvis du installerte MCP-serververktøyet etter installasjon av daemonen, reinstaller daemonen for å oppdatere PATH:
bash
triggerfish stop
triggerfish dive --install-daemon

Serveren krasjer ​

Hvis en MCP-serverprosess krasjer, avsluttes leseløkken og serveren blir utilgjengelig. Det er ingen automatisk gjentilkobling.

Løsning: Start daemonen på nytt for å starte alle MCP-servere på nytt.

SSE-transport blokkert ​

MCP-servere som bruker SSE (Server-Sent Events)-transport er underlagt SSRF-sjekker:

MCP SSE connection blocked by SSRF policy

SSE-URL-er som peker til private IP-adresser er blokkert. Dette er etter design. Bruk stdio-transport for lokale MCP-servere i stedet.

Verktøykallet feil ​

tools/list failed: <melding>
tools/call failed: <melding>

MCP-serveren svarte med en feil. Dette er serverens feil, ikke Triggerfish. Sjekk MCP-serverens egne logger for detaljer.


Obsidian ​

«Vault path does not exist» ​

Vault path does not exist: /path/to/vault

Den konfigurerte hvelv-banen i plugins.obsidian.vault_path eksisterer ikke. Sørg for at banen er riktig og tilgjengelig.

Sti-traversering blokkert ​

Path traversal rejected: <sti>
Path escapes vault boundary: <sti>

En notatbane forsøkte å flykte fra hvelv-mappen (f.eks. ved bruk av ../). Dette er en sikkerhetssjekk. Alle notateroperasjoner er begrenset til hvelv-mappen.

Ekskluderte mapper ​

Path is excluded: <sti>

Notatet er i en mappe som er listet i exclude_folders. For å få tilgang til det, fjern mappen fra ekskluderingslisten.

Klassifiseringshåndhevelse ​

Obsidian read blocked: classification exceeds session taint
Obsidian write-down blocked

Hvelvet eller den spesifikke mappen har et klassifiseringsnivå som konflikter med sesjons-Taint. Se Sikkerhets feilsøking for detaljer om write-down-regler.