Felsökning: Integrationer
Google Workspace
OAuth-token utgången eller återkallad
Google OAuth-refreshtoken kan återkallas (av användaren, av Google, eller vid inaktivitet). När det händer:
Google OAuth token exchange failedEller du ser 401-fel på Google API-anrop.
Åtgärd: Återautentisera:
bash
triggerfish connect googleDet öppnar en webbläsare för OAuth-samtyckesflödet. Efter att du beviljat åtkomst lagras de nya tokenerna i nyckelringen.
"No refresh token"
OAuth-flödet returnerade en åtkomsttoken men ingen refreshtoken. Det här händer när:
- Du har redan auktoriserat appen tidigare (Google skickar bara refreshtoken vid den första auktoriseringen)
- OAuth-samtycesskärmen begärde inte offlineåtkomst
Åtgärd: Återkalla appens åtkomst i Google-kontoinställningar, kör sedan triggerfish connect google igen. Den här gången skickar Google en ny refreshtoken.
Förebyggande av samtidig uppdatering
Om flera förfrågningar utlöser en tokenuppdatering samtidigt serialiserar Triggerfish dem så att bara en uppdateringsförfrågan skickas. Om du ser timeouts under tokenuppdatering kan det bero på att den första uppdateringen tar för lång tid.
GitHub
"GitHub token not found in keychain"
GitHub-integrationen lagrar Personal Access Token i OS-nyckelringen under nyckeln github-pat.
Åtgärd:
bash
triggerfish connect github
# eller manuellt:
triggerfish config set-secret github-pat ghp_...Tokenformat
GitHub stöder två tokenformat:
- Klassiska PAT:ar:
ghp_... - Finkorniga PAT:ar:
github_pat_...
Båda fungerar. Installationsguiden verifierar token genom att anropa GitHub API. Om verifieringen misslyckas:
GitHub token verification failed
GitHub API request failedDubbelkontrollera att token har rätt scopes. För full funktionalitet behöver du: repo, read:org, read:user.
Kloningsfel
GitHub-klonverktyget har automatisk återförsökslogik:
- Första försöket: klonar med angiven
--branch - Om grenen inte finns: försöker igen utan
--branch(använder standardgrenen)
Om båda försöken misslyckas:
Clone failed on retry
Clone failedKontrollera:
- Token har
repo-scope - Repot finns och token har åtkomst
- Nätverksanslutning till github.com
Hastighetsbegränsning
GitHubs API-hastighetsgräns är 5 000 förfrågningar/timme för autentiserade förfrågningar. Antalet återstående förfrågningar och återställningstiden extraheras från svarshuvuden och inkluderas i felmeddelanden:
Rate limit: X remaining, resets at HH:MM:SSDet finns ingen automatisk backoff. Vänta tills hastighetsgränsens fönster återställs.
Notion
"Notion enabled but token not found in keychain"
Notion-integrationen kräver en intern integrationtoken lagrad i nyckelringen.
Åtgärd:
bash
triggerfish connect notionDet frågar efter token och lagrar den i nyckelringen efter att ha verifierat den med Notion API.
Tokenformat
Notion använder två tokenformat:
- Interna integrationstokens:
ntn_... - Äldre tokens:
secret_...
Båda accepteras. Anslutningsguiden validerar formatet innan lagring.
Hastighetsbegränsning (429)
Notions API är hastighetsbegränsat till ungefär 3 förfrågningar per sekund. Triggerfish har inbyggd hastighetsbegränsning (konfigurerbar) och återförsökslogik:
- Standardhastighet: 3 förfrågningar/sekund
- Återförsök: upp till 3 gånger vid 429
- Backoff: exponentiell med jitter, börjar vid 1 sekund
- Respekterar
Retry-After-headern från Notions svar
Om du fortfarande når hastighetsgränser:
Notion API rate limited, retryingMinska samtidiga operationer eller sänk hastighetsgränsen i konfigurationen.
404 Not Found
Notion: 404 Not FoundResursen finns men är inte delad med din integration. I Notion:
- Öppna sidan eller databasen
- Klicka på "..."-menyn > "Anslutningar"
- Lägg till din Triggerfish-integration
"client_secret removed" (Brytande ändring)
I en säkerhetsuppdatering togs fältet client_secret bort från Notion-konfigurationen. Om du har det här fältet i din triggerfish.yaml, ta bort det. Notion använder nu enbart OAuth-token lagrad i nyckelringen.
Nätverksfel
Notion API network request failed
Notion API network error: <meddelande>API:et är nåbart. Kontrollera din nätverksanslutning. Om du är bakom en företagsproxy måste Notions API (api.notion.com) vara tillgängligt.
CalDAV (Kalender)
Uppgiftslösning misslyckades
CalDAV credential resolution failed: missing username
CalDAV credential resolution failed: secret not foundCalDAV-integrationen behöver ett användarnamn och lösenord:
yaml
caldav:
server_url: "https://calendar.example.com/dav"
username: "ditt-användarnamn"
credential_ref: "secret:caldav:password"Lagra lösenordet:
bash
triggerfish config set-secret caldav:password <ditt-lösenord>Identifieringsfel
CalDAV använder en flerstegsidentifieringsprocess:
- Hitta huvud-URL:en (PROPFIND på välkänd endpoint)
- Hitta calendar-home-set
- Lista tillgängliga kalendrar
Om något steg misslyckas:
CalDAV principal discovery failed
CalDAV calendar-home-set discovery failed
CalDAV calendar listing failedVanliga orsaker:
- Fel server-URL (vissa servrar behöver
/dav/principals/eller/remote.php/dav/) - Uppgifter avvisade (fel användarnamn/lösenord)
- Servern stöder inte CalDAV (vissa servrar annonserar WebDAV men inte CalDAV)
ETag-mismatch vid uppdatering/borttagning
ETag mismatch — the event was modified by another client. Fetch the latest version and retry.CalDAV använder ETags för optimistisk concurrencykontroll. Om en annan klient (telefon, webben) ändrade händelsen mellan din läsning och din uppdatering matchar inte ETag:en.
Åtgärd: Agenten bör hämta händelsen igen för att få aktuellt ETag, sedan försöka om operationen. Det hanteras automatiskt i de flesta fall.
"CalDAV credentials not available, executor deferred"
CalDAV-exekutorn startar i ett uppskjutet tillstånd om uppgifter inte kan lösas vid uppstart. Det är icke-dödligt; exekutorn rapporterar fel om du försöker använda CalDAV-verktyg.
MCP-servrar (Model Context Protocol)
Servern hittades ej
MCP server '<namn>' not foundVerktygsanropet refererar till en MCP-server som inte är konfigurerad. Kontrollera ditt mcp_servers-avsnitt i triggerfish.yaml.
Serverbinären inte i PATH
MCP-servrar startas som subprocesser. Om binären inte hittas:
MCP server '<namn>': <valideringsfel>Vanliga problem:
- Kommandot (t.ex.
npx,python,node) finns inte i daemonens PATH - systemd/launchd PATH-problem: Daemonen fångar din PATH vid installationstillfället. Om du installerade MCP-serververktyget efter att ha installerat daemonen, installera om daemonen för att uppdatera PATH:
bash
triggerfish stop
triggerfish dive --install-daemonServern kraschar
Om en MCP-serverprocess kraschar avslutas läslingan och servern blir otillgänglig. Det finns ingen automatisk återanslutning.
Åtgärd: Starta om daemonen för att starta om alla MCP-servrar.
SSE-transport blockerad
MCP-servrar som använder SSE-transport (Server-Sent Events) är föremål för SSRF-kontroller:
MCP SSE connection blocked by SSRF policySSE-URL:er som pekar till privata IP-adresser blockeras. Det är avsiktligt. Använd stdio-transporten för lokala MCP-servrar istället.
Verktygsanropsfel
tools/list failed: <meddelande>
tools/call failed: <meddelande>MCP-servern svarade med ett fel. Det är serverns fel, inte Triggerfishs. Kontrollera MCP-serverns egna loggar för detaljer.
Obsidian
"Vault path does not exist"
Vault path does not exist: /sökväg/till/vaultDen konfigurerade vault-sökvägen i plugins.obsidian.vault_path finns inte. Se till att sökvägen är korrekt och tillgänglig.
Sökvägstraversering blockerad
Path traversal rejected: <sökväg>
Path escapes vault boundary: <sökväg>En anteckningssökväg försökte fly vault-katalogen (t.ex. med ../). Det är en säkerhetskontroll. Alla anteckningsoperationer är begränsade till vault-katalogen.
Uteslutna mappar
Path is excluded: <sökväg>Anteckningen finns i en mapp listad i exclude_folders. Ta bort mappen från uteslutningslistan för att komma åt den.
Klassificeringstillämpning
Obsidian read blocked: classification exceeds session taint
Obsidian write-down blockedVaulten eller en specifik mapp har en klassificeringsnivå som konfliktar med sessionens taint. Se Säkerhetsfelsökning för detaljer om nedskrivningsregler.
