Common Issues
This guide covers the most common issues you might encounter and how to resolve them.Initialization Issues
Strings show '??key??' instead of translations
Strings show '??key??' instead of translations
Problem: Strings display as
??welcome_message?? instead of actual contentPossible Causes:- SDK not initialized
- String key doesn’t exist in backend
- Network sync hasn’t completed
- Invalid API token
- Web
- Android
- iOS
SDK not initializing
SDK not initializing
Problem: SDK fails to initialize or gets stuck in loading stateCommon Causes:Android:iOS:
- Invalid API token
- Wrong baseURL
- Network firewall blocking requests
- Missing internet permission (mobile)
Slow first load
Slow first load
Problem: App takes too long to load strings on first launchCause: Cache is cold, requires network fetchSolution: Preload strings synchronously
- Web
- Android
- iOS
Language Switching Issues
Strings don't update after language change
Strings don't update after language change
Problem: UI still shows old language after calling changeLanguage()Cause: UI not reacting to language changesSolutions:
- Web (Vanilla JS)
- Web (React)
- Android
- iOS
Language picker triggers multiple times
Language picker triggers multiple times
Problem: Language change function called repeatedlyCause: UI not disabled during language changeSolution:
- Web
- iOS
Flash of old content when changing language
Flash of old content when changing language
Problem: Brief flash of old language before new language appearsCause: Cache is cold for new languageSolution: Preload language before switching
Platform-Specific Issues
- Web
- Android
- iOS
Module not found error
Problem:Cannot find module '@stringboot/web-sdk'Solution:React hooks not working
Problem: Hooks don’t update or crashSolution:CORS errors
Problem: Browser blocks requests to Stringboot APISolution:- Verify baseUrl is correct:
https://api.stringboot.com - Check that you’re not using
http://instead ofhttps:// - Contact support if CORS errors persist
IndexedDB errors
Problem: “Failed to open IndexedDB”Solution:- Check if private browsing is enabled (not supported)
- Verify browser version meets minimum requirements
- Clear browser data and try again
Network and Connectivity
Sync fails with network error
Sync fails with network error
Problem: “Network error” or “Request failed”Checklist:
- Device has internet connection
- baseURL is correct:
https://api.stringboot.com - API token is valid (check dashboard)
- No firewall blocking requests
- Not in airplane mode
Very slow sync times
Very slow sync times
Problem: Sync takes >30 secondsPossible Causes:
- Slow network connection
- Large number of strings
- Server issues
- Use delta sync (enabled by default)
- Preload during app initialization
- Sync in background, don’t wait for completion
- Check server status
Unexpected data usage
Unexpected data usage
Problem: App using too much dataCheck:Best Practice:
- Let SDK handle automatic sync
- Only force-refresh when user explicitly requests
- Use delta sync (default)
Debugging Tips
Enable Debug Logging
Check Cache Stats
Test Offline Behavior
- Enable airplane mode
- Force quit app
- Relaunch app
- Verify: App should load all previously synced strings from cache
Inspect Network Requests
Web (Chrome DevTools):- Open DevTools → Network tab
- Filter by “stringboot” or API domain
- Check request/response details
- Connect device
- Open Console app on Mac
- Filter by “Stringboot” or “URLSession”
Still Having Issues?
Check GitHub Issues
See if others have encountered similar issues
Contact Support
Email [email protected] with details
Review Docs
Re-read platform-specific documentation
Best Practices
Ensure you’re following recommended patterns
When Reporting Issues
Include the following information:Platform and version (Web/Android/iOS)
SDK version
Error messages and stack traces
Steps to reproduce
Expected vs actual behavior
Debug logs if available
Network conditions when issue occurred