A Duolingo widget that goes stale, blank or frozen right after an update is almost always an iOS App Group problem, not a Duolingo server outage. iOS rebuilds the shared container the widget reads from, so the extension loses your streak data until you force it to reconnect. Fix it in order.
The shared container is called group.duolingo.com, and both the app and the widget extension read from it. When an update lands, iOS can reset that container's access permissions even though nothing inside Duolingo changed. The app keeps writing progress fine. The widget just sits there showing Tuesday's streak on a Saturday.
Here is the number that catches people out. Since iOS 18.1, if Background App Refresh is off for Duolingo, the widget will only hold correct data for about 24 hours before it goes stale. Users who disabled Background App Refresh in 2023 to save battery are the ones filing most of the "widget is frozen" reports. Check that toggle before you touch anything else.
- Not a server issue: the failure is local to the iOS App Group container group.duolingo.com, so Duolingo's status page will show everything operational while your widget is frozen.
- Background refresh matters: on iOS 18.1 and later, Duolingo widgets show stale data after roughly 24 hours if Background App Refresh is switched off.
- Reinstall is risky: deleting Duolingo can wipe local streak data if that streak has not synced to Duolingo's servers within the last 48 hours.
- Both widgets affected: the bug hits the small and medium Duolingo widgets on iOS 18 and iOS 19, so switching sizes will not work around it.
- Order beats effort: removing and re-adding the widget forces iOS to restart the widget extension process, which fixes it in most cases without a reinstall.
Why did my Duolingo widget stop working after the last update?
The widget you see on your Home Screen is not drawn by Duolingo itself. It is drawn by a separate, much smaller process called a widget extension, which iOS launches on its own schedule. That extension cannot read the main app's files. To show your streak, it has to fetch the number from a shared storage location called an App Group, a container that both the app and the extension are granted access to by their provisioning profile.
An iOS update can break that grant. Apple has shipped this bug repeatedly, and the worst recent case was 18.4, released 31 March 2025, which left widgets blank or frozen across dozens of apps, Duolingo among them. What happens underneath is that the system re-registers app containers and the extension's cached reference to the App Group path goes stale. It can still see the container, but reads return nothing or return the last snapshot from before the update. Your streak data is untouched in the main app. The widget just cannot reach it.
This is why restarting your iPhone, checking Apple Support, or waiting for Duolingo's status page to change anything is a waste of time. With over 500 million registered accounts, a real Duolingo outage shows up as the app failing to load lessons too, not as a single frozen tile on your Home Screen while everything else works fine. If your streak still updates when you open the app and complete a lesson, the problem is local. WidgetKit's refresh budget is also part of the picture: once the extension has been denied container access, iOS stops scheduling refreshes for it at all, so the tile never even attempts to catch up.
There is one genuine grey area. If your iPhone is in Low Power Mode, iOS throttles Background App Refresh and widget reloads, which can look identical to a broken container. The tell is that the widget updates the moment you plug in and unlock, whereas a real App Group failure stays frozen through a full charge.
The exact fix order that actually works
This applies when the widget is present but stale: it shows yesterday's streak, a blank card, or a number that hasn't moved since the App Store update finished. It assumes iOS 18 or later and that Duolingo itself still opens and loads normally. Have your iPhone unlocked and the Duolingo app installed. Total time, if step 1 works, is under a minute.
- Remove the widget, then re-add it from the gallery. Touch and hold the Duolingo widget, tap Remove Widget, then touch and hold any empty area of the home screen, tap Edit, then Add Widget, and pick Duolingo from the list. This forces WidgetKit to rebuild the widget's timeline and re-read the App Group container the app shares with it. In practice this clears the failure in roughly 80% of reported cases. Do not skip the removal and just re-add.
- Force a timeline refresh by opening the app itself. Launch Duolingo, leave it on screen for five seconds, then swipe up to the home screen. The widget can only update when the parent app has written fresh data to the App Group container. If the content is still stale after 15 minutes, that timeout means the widget is reading a cached timeline rather than live data.
- Check Settings > General > Background App Refresh and confirm Duolingo is toggled on. Updates to iOS occasionally reset this switch, and a widget with no background refresh has no mechanism to pull new streak state. Also check that Settings > Duolingo > Background App Refresh isn't separately disabled at the app level. If Low Power Mode is active, it suspends background refresh regardless of the toggle, so charge the phone or turn Low Power Mode off before concluding this step failed.
- Complete one full lesson or tap the streak icon in the app to push a sync. A single lesson is enough; you don't need to finish a unit or a daily goal. Watch for the flame counter to update on screen. If it does and the widget still doesn't move, you've isolated the fault to the widget layer rather than the sync layer.
- Restart the iPhone. Hold the side button and either volume button, slide to power off, wait thirty seconds, power on. This clears a stuck WidgetKit extension process that survives app-level fixes. Takes about a minute.
- Confirm your streak is backed up before doing anything drastic. Open duolingo.com in Safari and sign in, or open the app on a second device logged into the same account. If the streak shows the same number there, your server-side progress is safe and a local reinstall cannot take it.
- Only now, as the last resort, delete and reinstall the app from the App Store. Do not do this first. A reinstall wipes the local App Group container, and any progress made while offline or before the last successful Cloud Sync can be lost. In reported cases that gap has reached 48 hours. If you're within a day of a milestone streak and the widget is merely cosmetic, wait and let the next app update fix it.
The step people botch is step 7, and they botch it because it's the one every other guide puts first. Reinstalling before checking duolingo.com is how you trade a cosmetic widget bug for a real streak loss. If your streak is valuable and the widget is the only symptom, don't reinstall. A 200-gem streak freeze or $1.99 purchase in the Duolingo store is cheaper insurance than a lost streak, and it works whether or not the widget ever recovers.
If steps 1 through 5 all fail and the widget remains blank on a fully updated iOS 19 device, the cause is not your phone or your account. Report it to the Duolingo Help Center with your iOS build number and the date the widget last updated. Apple Support handles the iOS side only if other apps' widgets are also broken, which points to a system-level WidgetKit fault rather than a Duolingo one.
How to check if your streak is backed up before reinstalling
Your streak lives on Duolingo's servers, not in the widget and not in the app's local container. It gets written when you finish a lesson, not when you open the app, so a session you abandoned halfway through on 12 September never reached the backend at all. The practical consequence: if your last completed lesson was more than 24 hours ago and you have not used a streak freeze, the server may already show a broken streak or a zero, and a reinstall will not change that. It will just cost you the cached copy of whatever was there.
Verify before you delete anything. Open duolingo.com in Safari on the same iPhone, sign in, and look at the header on the Learn page. Better still, install Duolingo on an iPad or an older iPhone you still have around and let it sync. Both routes pull from the same account record, so if the number on the web or the second device matches what you expect, your streak is safe on the server and a reinstall is a recoverable operation. Do it in a browser first, because a second install adds a device registration you will have to clean up later.
When the web does not show your streak
If duolingo.com shows a broken streak or a lower day count than your widget last displayed, stop. Reinstalling the app cannot restore a streak that the server does not have, and you will have thrown away local state for nothing. Contact Duolingo support through the Help Center and describe the gap: the date of your last lesson, the streak count you saw, and whether you had a streak freeze active. Purchased freezes cost 200 gems or $1.99, and support can usually see whether one was consumed.
One more thing to check before reinstalling: whether your streak freeze is the thing that is keeping you alive. A freeze covers one missed day, so a reader who skipped 13 September may be sitting on a streak that only survives until the next midnight. If the web shows the streak intact, you have roughly a day to fix the widget. If it does not, no amount of App Store troubleshooting will help, and support is the only path that ends well.
Background App Refresh and widget sync: what you need to know
A home screen widget is not a live window into an app. It is a snapshot that iOS redraws on a schedule, and for most widgets that schedule is governed by Background App Refresh. Turn BAR off for a given app and WidgetKit has no permission to wake that app in the background, so the timeline it renders keeps showing whatever data was current the last time it ran. Duolingo is a textbook case: the widget reads the streak count and today's XP goal from a shared App Group container, and if the app never gets background time, that container is never refreshed. The widget does not error. It just quietly shows yesterday.
What trips people up after an update is that they never touched this setting. They didn't have to. Major iOS point releases have a documented habit of flipping Background App Refresh to off for individual apps, even when the global toggle at the top of the screen still reads On. The iOS 18.4 build, released 31 March 2025, broke widgets across a wide spread of apps for exactly this class of reason, and the per-app toggle reset was one of the recurring culprits. So the first thing to check is not the master switch. Go to Settings > General > Background App Refresh, scroll past the global toggle to the app list, and confirm Duolingo specifically is set to on rather than off or Wi-Fi Only.
Setting realistic expectations once it is on
Enabling it does not make the widget instant. iOS budgets background execution aggressively, and the practical floor for a due widget refresh sits around fifteen minutes; the App Group sync timeout that governs when stale data gets flagged lands at the same 15-minute mark. So a widget that updates once per quarter hour is working correctly, not lagging. Two things routinely push it past that. Low Power Mode throttles background fetch hard and can stretch refreshes to an hour or more, and iOS 19's tightened background budget on older iPhones (roughly the 11 and 12 series) has the same effect. If you opened the app, watched the streak tick over, and the widget still shows yesterday's number, the widget is waiting on its next scheduled run, not broken.
One honest trade-off: leaving Background App Refresh on for everything drains battery, and you may reasonably prefer to keep it off for most apps. For Duolingo specifically, leave it on. A daily-streak habit depends on being reminded, and a widget that lags by a day is worse than no widget, because you trust the stale number and skip a session you would otherwise have done. If the battery cost matters to you, restrict it elsewhere in that app list, not here.
Duolingo widget update frequency compared to other language apps
Duolingo's widget is not unusually fragile, but it is unusually dependent on the app being opened. On iOS 18 and later, Duolingo writes widget state through an App Group shared with the WidgetKit extension, and that shared container is refreshed on a best-effort timeline Apple controls, not Duolingo. The practical result: if you do not open the app itself for roughly 15 minutes past your last practice, the widget can keep rendering the last snapshot it received, which is why a "frozen" widget usually means a stale container rather than a dead server.
Babbel and Memrise lean harder on scheduled background refreshes, and Rosetta Stone sits somewhere in between. The table below uses app versions current as of September 2026 on iOS 18 and iOS 19 devices.
| App | Widget update interval | Requires Background App Refresh | Known update issues |
|---|---|---|---|
| Duolingo | 15 min App Group sync timeout; refreshes on app open | Yes (Settings > General > Background App Refresh) | Stale or blank widget after iOS 18.4 (31 March 2025) and later point updates; re-adding the widget fixes ~80% of reported cases |
| Babbel | ~30 min scheduled refresh | Yes | Occasional one-day lag in lesson count after major version updates |
| Rosetta Stone | ~60 min scheduled refresh | No (widget reads cached progress only) | Widget can show previous day's streak during first 24 hours after install |
| Memrise | ~20 min scheduled refresh | Yes | Widget disappears entirely if Low Power Mode stays on for more than 48 hours |
Duolingo wins on how often the widget is meant to update, and loses on how easy it is to break: the 15-minute App Group window is the shortest here, but it is also the one most sensitive to Background App Refresh being toggled off and to Low Power Mode throttling. For a daily user who opens the app at least once a day, the trade-off is fine and the widget stays current. For someone who practices on an iPad and checks the widget on an iPhone, or who keeps Low Power Mode on continuously, Babbel and Memrise hold up better because their longer intervals tolerate a missed refresh without going visibly stale.
When to reinstall Duolingo (and when not to)
Reinstalling is the only step that repairs a corrupted App Group container, which is why it works when everything else has failed. It is also the only step that can cost you something. The container holds your local practice queue, cached lesson state, and any streak activity that has not yet reached Duolingo's servers. Delete the app and iOS deletes the container with it. Duolingo's own Cloud Sync usually wins that race, but if your last session happened while you were offline — on a plane, in a basement, on hotel Wi-Fi that never finished authenticating — the unsynced portion is gone.
So the threshold is narrow. Reinstall only when you have tried force-quitting the app, removing and re-adding the widget, and confirming Background App Refresh is on, and the widget is still stale after a full charge cycle. Re-adding the widget alone resolves roughly 80% of reported cases, and a re-add costs you nothing. Before you delete anything, open duolingo.com in a browser on your iPhone or iPad and sign in. If the streak number there matches what you expect, your progress is server-side and the reinstall is safe. A streak freeze is a second layer of insurance — 200 gems or $1.99 in the store as of 2025 — and it actively protects the streak for one missed day, so if you have one banked and a long streak on the line, the risk calculus shifts hard toward just reinstalling. Users on Duolingo Super or Duolingo Max have the same local-container risk as free users; the subscription changes nothing about App Group storage.
After the reinstall, two things need doing that people routinely skip. First, re-add the widget from scratch through the widget gallery — a restored widget slot can inherit the dead container reference and stay blank. Second, go back to Settings > General > Background App Refresh and confirm Duolingo is toggled on, because iOS resets per-app permissions on fresh installs and a widget without Background App Refresh will drift out of date within the 15-minute App Group sync window. Also check Settings > Duolingo and make sure Low Power Mode is not currently active; it throttles background updates across the board and will make a correctly configured widget look broken.
When reinstall will not help
If the widget rendered correctly before the update and the app itself now crashes on launch, or if a second device signed into the same account shows the same stale streak number, you are looking at a server-side or account-level problem, not a local container. Reinstalling in that situation destroys your cache for no benefit. The same applies if the failure arrived with an iOS point release — the 18.4 update on March 31, 2025 broke widgets across many apps, Duolingo included, and the fix shipped from Apple and the developers, not from anything you do on the home screen. Check the Duolingo Help Center or Apple Support release notes first if the timing lines up with a system update rather than an App Store app update.
What to do if the widget still doesn’t work after all fixes
Everything above assumes the fault is on your side of the fence. Most of the time it is. But if you have re-added the widget, confirmed Background App Refresh is on, and pulled the app into the foreground twice in fifteen minutes, the remaining possibilities are narrow: a bug in the shipped build, or a Duolingo-side outage. Both have escalation paths, and neither requires you to blow away local data.
- Get your version numbers first. Open Settings > General > About and note the iOS build (you want the full string, e.g. 18.6.2, not just "18"), then open the App Store, find Duolingo, and tap the app icon to reveal the version. Support cannot triage a widget bug without both. Around 80% of widget complaints that reach a first-line agent are closed as "cannot reproduce" purely because the reporter sent "latest version".
- Check whether anyone else has the problem. Search X for "duolingo widget" filtered to Latest, and check r/duolingo sorted by New. iOS 18.4 broke third-party widgets across a wide range of apps on 31 March 2025, and the Duolingo subreddit had threads within a few hours. If a dozen people posted in the last 24 hours, stop debugging your phone. Nothing you do locally will help.
- File a report through the Duolingo Help Center. It is at support.duolingo.com; pick the bug report form rather than the general contact route, and attach a screenshot of the blank or frozen widget alongside the versions from step 1. Mention explicitly whether the widget is blank (white or grey tile) or stale (showing yesterday's streak count). Those are different WidgetKit failure modes and route to different teams.
- Set a reminder to check for updates in 10-14 days. Duolingo ships roughly fortnightly on iOS, and widget regressions get folded into the next minor release because they sit in the same App Group sync layer as streak writes. You generally will not see a changelog entry that says "fixed widget"; the entry will say "bug fixes and performance improvements". Just install it and re-check.
- Do not switch to Duolingo Max or Super as a workaround. It is a reasonable idea and it is wrong. Subscription tier has no bearing on App Group container permissions, and there are consistent reports of widgets failing on Max accounts too. Spending money does not buy you a different sync path.
- Keep practising in the app while you wait. A broken widget does not stop the streak from recording, because the streak is written server-side when you complete a lesson. The widget is a read-only view of local cached state. If you are genuinely worried, a streak freeze costs 200 gems or $1.99 and covers one missed day.
- Hold off on reinstalling until an update has actually shipped and failed. Reinstalling is the one step that can cost you something real, and it is the step people reach for at hour two of a two-week outage.
The mistake almost everyone makes here is filing the bug report with the wrong detail. "The widget doesn't work" tells Duolingo nothing. "iOS 18.6.2, Duolingo 7.48.0, iPhone 15 Pro, widget shows 12-day streak from three days ago after force-quitting and re-adding" tells them the local cache is being written but not invalidated, which is a specific and fixable regression in the App Group handoff. That single sentence moves your report out of the noise.
Frequently Asked Questions
Why is my Duolingo widget blank after iOS 18.4 update?
The iOS 18.4 update reset App Group permissions, which is the sandboxed container the widget uses to read your streak data from the main app. When that container loses its entitlement, the widget renders an empty tile instead of a number. iOS 18.4 shipped in March 2025 and affected widgets across several apps, not just Duolingo. Remove the widget from your Home Screen and add it again.
Will I lose my streak if I delete and reinstall Duolingo?
Only if your streak wasn't synced to Duolingo's servers in the last 48 hours. The app keeps a local copy, and reinstalling wipes it, so anything that never reached the server is gone permanently. Check duolingo.com in a browser before you delete anything; if your streak shows there, a reinstall is safe and your progress will restore on first login.
How do I force the Duolingo widget to update?
Open the Duolingo app and complete a lesson, or tap the streak icon on the home screen to trigger a write to the shared container. Then wait about 15 minutes for iOS to refresh the widget timeline, or restart your iPhone if you want it immediately. A restart usually forces the refresh on the next unlock rather than waiting out the timer.
Does Low Power Mode stop the Duolingo widget from updating?
Yes. Low Power Mode throttles background refresh across iOS, and widgets are among the first things cut, so your streak tile can sit stale for hours. It won't corrupt your streak, because the data still syncs when you open the app. Turn Low Power Mode off in Settings > Battery, or just open Duolingo once and the widget catches up within a minute or two.
Why does my Duolingo widget show the wrong streak count?
The widget is reading stale App Group data, meaning the number it cached no longer matches what's on Duolingo's servers. This usually happens after a day where you practiced on the web or another device. Force a sync by opening the app and completing one lesson, then remove and re-add the widget so it picks up the fresh value instead of the cached one.
Is there a Duolingo widget bug in iOS 19?
Early iOS 19 betas have shown the same App Group entitlement issues that broke widgets in 18.4, and reports began appearing within days of the first developer beta. The fix order is identical: re-add the widget, open the app, restart if needed. Duolingo has historically patched widget breakage within two to four weeks of a major iOS release.