Hi everyone,
I'm experiencing an inconsistent behavior with the Translation framework on iOS 18. The LanguageAvailability.status() API reports language models as .installed, but translation fails with Code 16.
Setup: Using translationTask modifier with TranslationSession Batch translation with explicit source/target languages Languages: Portuguese→English, German→English
Issue:
let status = await LanguageAvailability().status(from: sourceLang, to: targetLang) // Returns: .installed
// But translation fails:
let responses = try await session.translations(from: requests)
// Error: TranslationErrorDomain Code=16 "Offline models not available"
Logs:
Language model installed: pt -> en
Language model installed: de -> en
Starting translation: de -> en
Error Domain=TranslationErrorDomain Code=16 "Translation failed"NSLocalizedFailureReason=Offline models not available for language pair
What I've tried:
- Re-downloading languages in Settings
- Using source: nil for auto-detection
- Fresh TranslationSession.Configuration each time
Questions:
- Is there a way to force model re-validation/re-download programmatically?
- Should translationTask show download popup when Code 16 occurs?
- Has anyone found a reliable workaround?
I've seen similar reports in threads 791357 and 777113. Any guidance appreciated! Thanks!