Troubleshooting¶
Common issues and solutions for gitIDENTITY.
API Usage¶
404 - User Not Found¶
Problem: API returns 404 for a valid GitHub username.
Possible causes:
- Username typo: Double-check spelling and case
- Account deleted/suspended: GitHub account no longer exists
- Private account: User has no public activity
- Recent account: Account created <48 hours ago (GitHub API lag)
Solution:
Verify username on GitHub:
If GitHub API returns 404, gitIDENTITY will too.
500 - Detection Failed¶
Problem: API returns 500 error for valid user.
Possible causes:
- Insufficient activity data
- Account has <10 commits
- All commits >2 years old
-
No public repositories
-
Ambiguous patterns
- Contributes from multiple locations (VPN, travel)
- Inconsistent activity times
-
Works across timezones regularly
-
Bot/service account
- Automated commits don't follow human patterns
- No timezone signal in commit timing
Solution:
This is expected for accounts without analyzable patterns. Detection requires:
- At least 50 commits in public repositories
- Activity spanning 4+ weeks
- Consistent timing patterns
Note
Detection confidence <0.3 triggers 500 error rather than returning unreliable data.
429 - Rate Limited¶
Problem: API returns 429 after multiple requests.
Rate limits:
- Free tier: 100 requests/hour per IP
- Authenticated: 1000 requests/hour with API key
- Enterprise: Custom limits
Solution:
- Check
Retry-Afterheader for wait time - Implement exponential backoff
- Cache results (timezone rarely changes)
- Contact recon@codegroove.dev for higher limits
Example retry logic:
import time
import requests
def detect_timezone(username, max_retries=3):
for attempt in range(max_retries):
response = requests.post(
"https://finder.github.codegroove.app/api/v1/detect",
json={"username": username}
)
if response.status_code == 429:
retry_after = int(response.headers.get("Retry-After", 60))
time.sleep(retry_after)
continue
return response.json()
Detection Accuracy¶
Low confidence score¶
Problem: API returns timezone but confidence < 0.5.
Understanding confidence:
- 0.8-1.0: High confidence, strong signal
- 0.5-0.8: Moderate confidence, reasonable guess
- 0.3-0.5: Low confidence, best guess from limited data
- <0.3: Too uncertain, API returns 500 instead
Factors reducing confidence:
- Sparse commit history
- Irregular activity patterns
- VPN/proxy usage
- Recent timezone change (relocation, remote work)
- Multi-timezone collaboration
When to trust low-confidence results:
- Use as hint, not fact
- Cross-reference with profile location
- Combine with other signals
- Accept margin of error
Incorrect timezone detected¶
Problem: gitIDENTITY detects wrong timezone for a user.
Common causes:
- Recent relocation
- Detection based on historical activity
-
Takes 4-8 weeks to update after move
-
VPN usage
- Commit times reflect VPN server location
-
GitHub API sees VPN timezone
-
Night owl/early bird
- Unusual work hours shift detected timezone
-
Example: US developer working 2am-10am appears European
-
Remote work across timezones
- Collaborates with team in different timezone
- Adjusts schedule to match team
Verification:
Compare with:
- GitHub profile location field
- Commit message language/references
- Repository locations (company timezone)
- Social media profiles
Limitation:
gitIDENTITY detects behavior timezone (when you code), not stated location (where you claim to be). These may differ.
Country mismatch with timezone¶
Problem: Timezone is America/New_York but country_code is CA (Canada).
Explanation:
This is correct! Timezones cross borders:
America/New_York: Used in US (New York) and Canada (Toronto)America/Los_Angeles: Used in US (California) and Canada (Vancouver area)Europe/London: Used in UK and Portugal (partially)
Country detection:
gitIDENTITY detects country from:
- Timezone (narrows to region)
- Profile location hints
- Language in commits/PRs
- Repository ownership
- Social media references
If timezone could be multiple countries, confidence drops and country may be ambiguous.
Profile says one location, detection says another¶
Problem: GitHub profile says "San Francisco" but detection says America/New_York.
Possible causes:
- Stale profile: User moved but didn't update profile
- Remote work: Lives in SF, works for NY-based company on NY hours
- Marketing/privacy: Profile location is aspirational or hidden
- VPN: Commits route through East Coast servers
Which to trust?:
- Profile: Where user claims to be
- gitIDENTITY: Where user behaves like they are
For security screening, behavioral timezone is more reliable than self-reported location.
Performance¶
Slow API responses¶
Problem: Detection takes >10 seconds.
Causes:
- Large commit history: Analyzing 10,000+ commits
- Many repositories: User contributes to 100+ repos
- Cold cache: First request for this user
- GitHub API rate limits: Waiting for data from GitHub
Solutions:
- Cache results: Timezone rarely changes, cache for 30+ days
- Async processing: Don't block user-facing requests
- Batch requests: Process multiple users in parallel
- Accept cached data: Use
cached: trueparameter (instant response)
Example:
# Accept cached result (fast but may be stale)
curl https://finder.github.codegroove.app/api/v1/detect?cached=true \
-d '{"username":"octocat"}'
Request timeout¶
Problem: API request times out after 30 seconds.
Cause:
Extremely large commit history (>50,000 commits) or GitHub API outage.
Solution:
- Retry with
cached: trueparameter - Implement client-side timeout handling
- Fall back to profile location if available
- Contact support for problematic usernames
Security Screening¶
False positives on sanctions screening¶
Problem: Developer flagged incorrectly by watchlist check.
Causes:
- Common name: Many people share same name
- Location inference: Behavioral timezone doesn't prove physical location
- VPN confusion: Appears to be in sanctioned region via VPN
Recommendation:
Use gitIDENTITY as one signal among many:
- ✅ Do: Use as screening trigger for manual review
- ❌ Don't: Auto-reject based solely on gitIDENTITY
Combine with:
- Government ID verification
- Payment method location
- IP address analysis
- Background check services
Compliance requirements¶
Question: Is gitIDENTITY sufficient for OFAC/BIS compliance?
Answer:
No. gitIDENTITY provides behavioral geolocation to inform screening decisions, not legal proof of location.
For compliance:
- Use gitIDENTITY to flag potential risks
- Conduct manual review of flagged accounts
- Request documentation from contributor
- Use licensed compliance screening service for final determination
gitIDENTITY helps you know who to investigate, not whether to approve/reject.
Data Privacy¶
GDPR compliance¶
Question: Does gitIDENTITY store personal data?
Answer:
gitIDENTITY:
- ✅ Analyzes publicly available GitHub data
- ✅ Caches detection results for 90 days
- ❌ Does not collect email, IP address, or identifying info beyond username
- ❌ Does not track individual users across sessions
Data retention:
- API response cache: 90 days
- Aggregated statistics: Indefinite (anonymized)
- User profile data: Not stored (queried from GitHub API)
Right to erasure:
Contact privacy@codegroove.dev to request cache deletion.
Consent requirements¶
Question: Do contributors need to consent to timezone detection?
Answer:
No. gitIDENTITY only analyzes publicly available data:
- Public commit timestamps
- Public repository contributions
- Public profile information
This is equivalent to manual analysis anyone could perform. No additional consent required beyond GitHub's existing terms.
API Integration¶
Authentication¶
Question: How do I authenticate API requests?
Answer:
Free tier: No authentication required (IP-based rate limits)
For higher limits:
- Contact recon@codegroove.dev
- Receive API key
- Include in requests:
Bulk processing¶
Question: How do I screen 1000+ contributors efficiently?
Answer:
Use batch endpoint (Enterprise only):
curl https://finder.github.codegroove.app/api/v1/detect/batch \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"usernames":["user1","user2","user3"]}'
Returns results for all users in single response.
For custom integration, contact recon@codegroove.dev.
Webhook notifications¶
Question: Can I get notified when new contributors appear?
Answer:
Not currently available via API. Enterprise customers can integrate with GitHub webhooks to detect new contributors and trigger gitIDENTITY screening.
Example flow:
- GitHub webhook fires on new PR
- Your service extracts contributor username
- Call gitIDENTITY API to detect timezone
- Flag for review if country code matches watchlist
Still Having Issues?¶
If your problem isn't listed here:
- Check API Reference for correct usage
- Review GitHub Discussions
- Contact recon@codegroove.dev
For security/compliance questions, include:
- Use case description
- Volume of requests
- Compliance requirements
- Integration architecture