diff --git a/packages/origin.js/src/ipfs-service.js b/packages/origin.js/src/ipfs-service.js
index <HASH>..<HASH> 100644
--- a/packages/origin.js/src/ipfs-service.js
+++ b/packages/origin.js/src/ipfs-service.js
@@ -87,8 +87,15 @@ class IpfsService {
           reject('Got ipfs cat stream err:' + err)
         })
         stream.on('end', () => {
-          this.mapCache.set(ipfsHashStr, res)
-          resolve(res)
+          let parsedResponse;
+          try {
+            parsedResponse = JSON.parse(res)
+          } catch (error) {
+            reject(`Failed to parse response JSON: ${error}`)
+            return;
+          }
+          this.mapCache.set(ipfsHashStr, parsedResponse)
+          resolve(parsedResponse)
         })
       })
     })
Parse JSON after retrieving from IPFS