Troubleshooting
Trace a problem through the project, publication, SDK fetch, and native rendering layers.
On this page
Published text does not appear
- Confirm the changed value is published. A saved draft or successful CLI push is not an OTA publication.
- Check that the app uses the intended project OTA Publish ID and that the ID has not expired.
- Check the active locale, variant, and exact key identifier. Verify whether the value is coming from Main or a fallback language.
- Trigger an update check and inspect the SDK result for network, format, or cache errors.
- Confirm existing views observe revisions. Flutter needs a rebuild, UIKit and Android Views need rebinding, and Compose needs revision observation.
A dashboard language is missing
Confirm the language is part of the project and has published content. A runtime picker should use the SDK available-locale information where supported, not only a hardcoded list of compiled languages. The SDK must successfully fetch or restore the language before it can be offered.
Check native supported-language restrictions and app-level selection state. Operating-system settings and store language metadata are separate from the app runtime language picker.
Offline startup loses translations
Compare a fresh install with a restart after a successful update. A fresh offline install cannot download missing translations. Retained cache can support later offline launches, but clearing browser or application storage removes that data.
Keep bundled resources for the baseline experience. For React Native, check the AsyncStorage native installation. For native HTTP loaders, verify that the loader itself can initialize offline.
Flutter caching, fallback, and OTA updates
Trace startup, full and delta updates, persistent storage, fallback, retries, and UI rebuilds. This Flutter SDK 1.1.0 walkthrough covers published delivery; staging uses the separate snapshot workflow described in the staging guide.
Watch on YouTubeThe CLI cannot sync
- If the command is not found, verify PATH and open a new terminal after installation.
- Run from the directory containing the intended rerune.json and confirm the platform and translation path.
- Check RERUNE_API_KEY and the account permissions for the target organisation and operation.
- For push, make sure every configured language has the expected file.
- After an uncertain upload error, inspect remote values before retrying; part of the upload may already have succeeded.
Generated code or placeholders fail
For Flutter-compatible ARBs, run flutter gen-l10n and then dart run rerune. If exported ARBs contain offset:0, follow the prepared-catalog configuration in the Flutter chapter and run dart run rerune prepare-arb first. Check the generated overlay import path and configuration name. For other native formats, rebuild resources and verify identifiers and arguments against app call sites.
When a signature changes, fix the application and ship compatible code. A translation update cannot create a new generated method in an already installed binary.
Collect a useful issue report
Include the platform, SDK or CLI version, affected key and locale, expected value, observed value, and whether the issue occurs before or after a successful update. Share a small reproduction and sanitized diagnostic output. Keep API keys and full credential values out of the report.