Announcements
In Teams, Adaptive Card images must be fetchable anonymously over HTTPS by the Teams client, using a direct file URL (no cookies, no auth flow, no redirects). Links that work in your browser (because you’re signed in) often fail in Teams. Host the images at a publicly reachable endpoint (e.g., Azure Blob/Static Website/CDN) with the right CORS/headers, keep your card at a Teams‑supported schema version (≤1.5, and try 1.4 if you see rendering issues), and avoid data URIs >25 KB.
Serve images from a truly public, direct URL
For Azure Storage, prefer:
Static Website hosting: https://<account>.z13.web.core.windows.net/<path>/<file>.png
Or Blob public container with a direct blob URL: https://<account>.blob.core.windows.net/<container>/<file>.png (no redirects, no HTML landing pages). Test in an incognito window where you’re not signed in.
CORS and headers on the storage origin
Set CORS to allow Teams’ webviews to fetch the image:
Allowed origins: * (or the minimal set you require)
Methods: GET, HEAD, OPTIONS
Headers: *
Expose headers: (optional)
Max age: e.g., 3600
Ensure the blob serves the correct Content-Type (e.g., image/png) and avoid 302/307 redirects. This reduces intermittent desktop failures.
Use a stable, cacheable URL
Avoid short‑lived SAS query strings (or make them long‑lived) because Teams may cache placeholders if the URL 401/404s even once. If you must use SAS, ensure it’s valid well beyond the card’s lifetime. Some reports note that once a placeholder is cached in new Teams, it may persist until cache clear.
Keep the Adaptive Card schema version conservative
Set "version": "1.4" in your card JSON if you see rendering problems in Teams channels—even though 1.5 is “supported,” 1.4 can be more reliable across clients.
If you must embed (base64), stay under ~25 KB total
Data URIs work, but the total Teams message payload (including JSON) is ~25 KB, so images larger than icons/thumbnails will break. Better to host externally.
Try a CDN fronting your blobs
Putting Azure CDN (Standard/Microsoft) in front of blobs can normalize headers, reduce redirects, and improve reliability in the desktop client. Many teams report fewer intermittent failures with a CDN.
Test across clients + clear cache
Validate in: Copilot Studio test chat, Teams web, new Teams desktop (Windows/Mac), and mobile. If the desktop app shows placeholders, sign out/in or clear the Teams cache and retest. (There are known placeholder caching quirks.)
Under review
Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.
Jump in, show your community spirit, and win prizes!
Expanding mentorship, skilling, and AI innovation
These are the community rock stars!
Stay up to date on forum activity by subscribing.
Valantis 277
11manish 206
sannavajjala87 156 Super User 2026 Season 1