How long Teams caches unfurls
Teams caches unfurl data server-side for about 30 minutes. During that window, the same URL shared anywhere in Teams shows the same cached preview regardless of tag changes. After 30 minutes, the next share triggers a fresh SkypeUriPreview crawl.
Client-side caching
The Teams desktop and mobile clients also maintain their own local cache. Even after the server-side cache expires, a user who already saw the old unfurl may keep seeing it until their client cache is cleared.
Forcing a cache refresh
There’s no API to purge Teams’ unfurl cache. Your options:
- Wait 30 minutes for the server-side cache to expire
- Append a query parameter to force a fresh crawl:
https://example.com/page?v=2
Teams caches by exact URL, so the new parameter triggers a new fetch. The original URL’s cache stays stale.
- Clear the local client cache (doesn’t affect server-side cache)
Clearing the Teams client cache
Windows (new Teams):
%userprofile%\appdata\local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams
macOS:
~/Library/Application Support/Microsoft/Teams
Delete the contents and restart Teams. Only affects your local view.
For app developers: setCachePolicy
If you’re building a Teams messaging extension for link unfurling, setCachePolicy gives you control over cache duration for your custom unfurl cards, independent of the default 30-minute window.
What doesn’t work
- Editing a message with a URL does not re-fetch the unfurl
- Clearing only the local cache doesn’t help if server-side cache is still stale
- Re-posting the same URL within the 30-minute window serves the same cached data
When caching goes wrong
- Updated tags but old preview showing – wait 30 minutes or use a query parameter
- Image updated but old image showing – the Microsoft image proxy has its own cache TTL, separate from metadata
- Preview disappeared – your server may have returned an error during re-crawl, and Teams cached that broken state