Skip to main content

Troubleshooting gitGost

Quick solutions to common operational problems.

Push Errors

Symptom:
Cause:IP address has exceeded 5 PRs in the last hour (from internal/http/handlers.go:160-173).Solutions:
  1. Wait for rate limit to reset (up to 1 hour)
  2. Use different IP address:
  3. Verify you’re not in a loop:
For operators:Rate limit is intentional abuse protection. Legitimate users rarely hit this limit. If seeing widespread complaints, consider increasing rateLimitMaxPRs in internal/http/handlers.go:562.
Symptom:
Cause:Service administrator activated panic mode due to abuse detection.Solutions:For users:
  1. Wait 15-30 minutes and retry
  2. Check service status:
For operators:Deactivate panic mode if threat has passed:
Symptom:
Cause:GitHub API rate limit reached or @gitgost-anonymous account hit 40,000 repository cap.Solutions:For operators:
  1. Check GitHub token rate limit:
  2. Wait for reset (shown in X-RateLimit-Reset header)
  3. Verify bot account status:
  4. Clean up old forks:
Symptom:
Cause:Repository exceeds size limits:
  • Repo size: 500 MB max
  • Commit size: 10 MB max
  • Push size: 100 MB max
From README.md:213-215 and internal/http/router.go:49Solutions:
  1. Reduce commit size:
  2. Use Git LFS for large files:
  3. Split into smaller commits:
Symptom:
Cause:Branch name contains invalid characters or Git protocol error.Solutions:
  1. Use valid branch names:
  2. Ensure clean push:
  3. Check for corruption:

Authentication Issues

Symptom:
Cause:Git credential helper trying to prompt for credentials (gitGost requires none).Solutions:
  1. Disable credential helper temporarily:
  2. Remove stored credentials:
  3. Configure per-remote:
Note: GitGost is designed for anonymous access. No credentials are ever required.
Symptom:
Cause:Instance has GITGOST_API_KEY configured and your request lacks the key (rare for public instances).Solution:Git operations never require API keys. This error only appears on non-git endpoints. If pushing:
From internal/http/router.go:95-126: Git endpoints bypass API key checks.

Network & Connectivity

Symptom:
Cause:
  • Service is down
  • Network/firewall blocking
  • DNS resolution failure
Solutions:
  1. Check service status:
  2. Test DNS resolution:
  3. Check firewall/proxy:
  4. Verify SSL/TLS:
Symptom:Push takes 5+ minutes or times out.Cause:
  • Large repository size
  • Slow network connection
  • Using Tor (expected slowness)
Solutions:
  1. Check repository size:
  2. Increase Git timeout:
  3. If using Tor:
  4. Use shallow clone to reduce size:
Symptom:
Cause:Outdated CA certificates or corporate SSL interception.Solutions:
  1. Update CA certificates:
  2. Verify certificate:
  3. Temporary workaround (NOT recommended for production):

Service Health Issues

Symptom:
Cause:Memory leak or sustained high traffic.Diagnosis:
  1. Check goroutine count:
  2. Monitor over time:
Solutions:
  1. Restart service (clears memory)
  2. Increase memory limits:
  3. Check for leaks in custom code
From internal/http/handlers.go:508-522: Metrics endpoint exposes runtime.MemStats.
Symptom:Service crashes immediately or fails health check.Diagnosis:
  1. Check logs:
  2. Verify environment variables:
Common Issues:
  1. Missing GitHub token:
  2. Invalid port binding:
  3. Database connection failure:
Symptom:
Cause:Rare runtime panic in metrics collection.Solutions:
  1. Check health endpoint instead:
  2. Review logs for panics:
  3. Restart service if persistent

PR Creation Issues

Symptom:Push succeeds but no PR is visible on GitHub.Cause:
  • PR was created but closed by maintainer
  • Network error after push but before PR creation
  • GitHub API rate limit
Solutions:
  1. Search for PR:
  2. Check push response:
  3. Verify fork exists:
  4. Retry push:
Symptom:PR has branch name like gitgost-a3f7b9c2 instead of your branch name.Cause:This is expected behavior. GitGost generates deterministic branch names for tracking.Explanation:From internal/http/handlers.go:245-252:
Branch names are based on PR hash to enable updates via push options.Not a bug: This enables the update workflow:

Logging & Debugging

Symptom:Log file empty or no output.Solutions:
  1. Check log configuration:
  2. Verify logger initialization:
  3. Check stdout/stderr:
Issue:Logs are too minimal for debugging.Explanation:GitGost intentionally logs minimally to protect user privacy (from internal/utils/logging.go:27-29):
For debugging:
  1. Use JSON format for structure:
  2. Monitor metrics endpoint:
  3. Add temporary debug logs (development only):
Privacy reminder: Never log IPs, user agents, or timing patterns that could deanonymize users.

Getting Help

Still stuck?

Check these resources:
  • Source code: Inspect handlers in internal/http/handlers.go
  • GitHub issues: Search existing issues at github.com/livrasand/gitGost
  • Security issues: Email gitGos@proton.me (see SECURITY.md:11)
  • Anonymous reporting: Use gitGost itself to submit a PR
When reporting issues:✅ Include: Error messages, steps to reproduce, expected behavior❌ Avoid: Logs with IPs, personal info, credentials

Diagnostic Commands Reference

Next Steps

Monitoring

Set up proactive monitoring to catch issues early

Moderation

Learn moderation tools to handle abuse