====== GoToSocial Federation & Follow Troubleshooting ====== **Status:** Resolved\\ **Date:** 2026-05-27\\ **Affected service:** [[folkzone:services:gotosocial|GoToSocial]] ===== Symptom ===== Follow requests sent from ''@brennan@folk.zone'' showed as "requested" on the client but never appeared as pending on the remote instance (social.lol). Reverse follows from social.lol also failed to appear on the GTS side. ===== Diagnosis ===== Check GTS logs for delivery errors: docker logs gotosocial --since 15m 2>&1 | grep -iE 'follow|deliver|error|warn' | grep -v 'cache\|schedule' The key error pattern to look for: func=httpclient.(*Client).DoOnce level=ERROR method=POST url=https://social.lol/inbox msg="http response: 503 Service Unavailable" func=httpclient.(*Client).DoOnce level=INFO method=POST url=https://social.lol/inbox msg="400 Bad Request" GTS attempts delivery twice. After a 400 on the second attempt, it does **not** auto-retry — the follow activity is silently dropped. ===== Root Cause ===== The remote instance (social.lol) returned a 503 on the first delivery attempt, then a 400 on retry. The 400 is likely a signature replay rejection — Mastodon-compatible instances reject re-signed requests with the same timestamp/nonce. This is a transient remote-side failure, not a configuration problem on the GTS instance. ===== Fix ===== Unfollow and re-follow the account from your client (Pinafore or Phanpy). GTS will generate a fresh Follow activity with a new signature, which will deliver successfully. ===== Follow Import from Another Instance ===== To bulk-import follows from another Mastodon-compatible instance (e.g. social.lol): - On the source instance: **Settings → Import and Export → Export → Following list** → download ''follows.csv'' - On GTS: go to ''https://social.folk.zone/settings/migration/import'' - Set Type to **Following list**, upload the CSV, choose **Merge** mode - GTS queues all follow activities and delivers them asynchronously At 1,500 accounts, delivery takes 10–30 minutes. GTS uses 8 delivery workers by default and rate-limits outgoing federation. Monitor progress: docker logs gotosocial -f 2>&1 | grep -E 'Accept objectType=Follow|ERROR.*POST' Normal errors during bulk import: * **Timeout on slow/down instances** — GTS retries automatically * **404 on /actor/outbox** — harmless stats lookup on some instances * **503 from busy instances** — GTS retries with backoff ===== Instance Contact Account Field ===== The contact account field in ''Settings → Administration → Instance Settings'' expects a **username only** (e.g. ''brennan''), not a display name or email address. Using a display name or email causes a 400 error: errors="Error #01: db error getting selected contact account with username Brennan Kenneth Brown: sql: no rows in result set" ===== See Also ===== * [[folkzone:services:gotosocial|GoToSocial service page]] * [[folkzone:troubleshooting:start|Troubleshooting Index]] * [[start|Return to wiki home]]