Troubleshooting
Start from the symptom. Most failures are credentials, CORS, a contact URL pointing at the wrong repo, or a live path the network will not allow.
Login fails on the web
Check, in order:
- HTTPS git URL, not SSH.
- Token still valid, with write on that repo — not only
public_repo, not expired. - CORS proxy reachable. If the default proxy is down, connect will fail even with a perfect token.
- Browser console: the git helper must load. Extensions that block scripts or storage will break connect.
Desktop builds skip the browser CORS rule; if web fails and desktop works, it is almost certainly proxy/CORS.
Contact stays Pending
They have not published a public profile yet, or you cannot fetch their repo.
- They should finish profile setup and stay connected once so it can push.
- Confirm you pasted their repo URL, not yours.
- If their repo is private, your contact token must be able to read it.
- Wait for poll, open the chat (that retries), or tap Retry.
Cannot send (composer disabled)
Disabled only for Pending and Unreachable. Active, Connecting, and Live can send. Connecting uses git; Live uses the direct link.
Stuck on a single tick
Local write succeeded; your push has not. Open the poll toast:
write denied— the host accepted the username and refusedgit-receive-pack. Classic GitHub token needsrepo; fine-grained needs Contents: Read and write. Fetch (read) can still work, which is why the app looks “half connected.”- Network 403 on receive-pack is the same class of bug. Glitr will not hammer the proxy retrying receive-pack after a denial.
- Slow push timings mean the host or proxy is just slow — wait, then Poll now.
No message on the other side
- On the receiver, the contact URL must be the sender’s repo.
- Sender ticks should be at least double gray (pushed).
- Receiver should Poll now (or wait the countdown).
- Receiver must not be logged into the sender’s mailbox by mistake.
Not going Live
Both apps must stay open and poll. Signaling is encrypted to the peer’s public key and stored on git; if verify never finished, handshake cannot start.
- Status should move Connecting → Live. A later poll should not flip one side to a hard failure just because the same offer is still on the board (it is applied once).
- Both stuck Connecting with ICE checking: the network cannot form the peer connection. Use git. That is a successful messenger on a hostile network, not a broken install.
- Browser console: the live helper must load.
Poll feels slow
The toast lists phases: peer fetch, ingest, own sync/push. A large fetch is contact clones; a large push is publishing you. After a write denial, Glitr should not waste a full classify fetch on every idle poll.
Refresh logged you out
Logout wipes local clones and session credentials on purpose. A normal refresh, with credentials still in that tab’s session storage, should auto-reconnect and paint from the local copy.
Still stuck
Re-read Connect your repository and Your first conversation as a checklist. The messaging try experience is the same protocol with two tabs — useful for isolating “is it my host?” from “is it this device?”