diff --git a/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java b/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java
index f4a1a6a..0c686f7 100644
--- a/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java
+++ b/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java
@@ -86,7 +86,11 @@
     return cache(cacheKey, new Callable<LottieResult<LottieComposition>>() {
       @Override
       public LottieResult<LottieComposition> call() {
-        return L.networkFetcher(context).fetchSync(url, cacheKey);
+        LottieResult<LottieComposition> result = L.networkFetcher(context).fetchSync(url, cacheKey);
+        if (cacheKey != null && result.getValue() != null) {
+          LottieCompositionCache.getInstance().put(cacheKey, result.getValue());
+        }
+        return result;
       }
     });
   }
@@ -109,7 +113,11 @@
    */
   @WorkerThread
   public static LottieResult<LottieComposition> fromUrlSync(Context context, String url, @Nullable String cacheKey) {
-    return L.networkFetcher(context).fetchSync(url, cacheKey);
+    LottieResult<LottieComposition> result = L.networkFetcher(context).fetchSync(url, cacheKey);
+    if (cacheKey != null && result.getValue() != null) {
+      LottieCompositionCache.getInstance().put(cacheKey, result.getValue());
+    }
+    return result;
   }
 
   /**
