WeatherKit consistently fails with the following error: WDSJWTAuthenticatorServiceListener.Errors Code=2 This happens on a physical device regardless of the troubleshooting steps I try. After the error occurs, the app uses a third-party fallback provider successfully.
The issue appears similar to failures reported by other developers on iOS 26, even though the WeatherKit entitlement and signing configuration seem valid.
I have verified the following:
• The signed application binary contains the WeatherKit entitlement.
• The embedded provisioning profile contains the WeatherKit entitlement.
• The application identifier and team identifier match the provisioning profile.
• The WeatherKit capability was disabled, saved, enabled again, and saved.
• Xcode automatic signing generated a new provisioning profile after resetting the capability.
• The project was cleaned and a fresh build was installed on the physical device.
• Both the application and the device were restarted.
• Location permission is granted and the app receives valid coordinates.
• Network connectivity works correctly.
• A non-Apple fallback weather provider successfully returns a forecast for the same coordinates.
Despite this, every WeatherKit request still fails with WDSJWTAuthenticatorServiceListener.Errors Code=2. Has anyone identified the cause of this error on iOS 17 or 26 or found an additional signing, entitlement, App ID, or provisioning step required to resolve it?
Environment:
• iOS version: iOS: 26.6 (23G71)
• Xcode version: 26.5
• Device: iPhone 14 Pro
• WeatherKit API used: WeatherService.shared
• Distribution method:TestFlight
The vast majority of problems like this are caused by folks enabling the WeatherKit entitlement but not the WeatherKit app service. See this post.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"