Animated GIFs not playing or delivered as static images in Dynamic Media
Animated GIFs delivered through Adobe Dynamic Media often appear as static images when requested through the /is/image endpoint. This happens because /is/image rasterizes and optimizes images, which strips the animation frames, while the original GIF still animates in the DAM or when served directly. GIFs that were exported without looping or that contain a single frame also appear static regardless of the delivery method. To fix the issue, deliver animated GIFs through the /is/content endpoint, which returns the original asset without transformation, and confirm the source GIF is actually animated.
Description description
Environment:
- Adobe Experience Manager as a Cloud Service
- AEM Dynamic Media
Issue/Symptoms:
- A GIF delivered through a
/is/image/URL shows only a single static frame, even though the original GIF is animated. - The same GIF delivered through a
/is/content/URL plays correctly, confirming the animation exists.
Root cause:
The Dynamic Media /is/image endpoint always rasterizes GIFs and treats them as static images, removing animation frames. Only the /is/content endpoint preserves animated GIF playback because it serves the original asset without processing or modifiers. In addition, GIFs uploaded without looping enabled or containing a single frame appear static regardless of the delivery method.
Steps to reproduce
- Download the original asset from the DAM and open it locally to verify it contains multiple frames and loops more than once. In Photoshop, use File
>Export>Save for Web and confirm that Looping is set to Forever and that multiple frames are present. - Construct a delivery URL using
/is/content, such ashttps://example.com/is/content/<company>/<asset-name>, and confirm the GIF animates in a browser. - Construct the equivalent
/is/imageURL, such ashttps://example.com/is/image/<company>/<asset-name>, and confirm the GIF appears static, which isolates the cause to/is/imagerasterization.
Resolution resolution
To fix the issue:
- Confirm the GIF is animated. If it is static or loops only once, re-export it with looping set to Forever, then re-upload and publish it to Dynamic Media.
- Deliver the GIF through the
/is/contentendpoint, for examplehttps://example.com/is/content/<company>/<asset-name>, and confirm the animation plays in a browser. - Check whether an image profile or processing profile is applied to the parent folder by going to Tools
>Assets>Processing Profiles. Image profiles do not apply to animated GIFs; if a profile cannot be removed, move the GIFs into a separate folder without image profiles. - Ensure the correct URL is used in components. Some components, such as email image components, auto-generate
/is/imageURLs. Override the component to use a/is/contentURL or disable Dynamic Media for that component, and test with a manually inserted/is/contentURL. - Validate the fix: open the final
/is/contentdelivery URL and confirm the animated GIF plays, verify no component or template rewrites the URL to/is/image, and re-test other GIF assets to confirm consistent behavior.