diff --git a/e2e/protractor.conf.js b/e2e/protractor.conf.js
index 44b20685fae5e095094e36b6482e52f6f4890333..500dbdf9f082055cd82cbdeecd0a2d33c1370a7a 100644
--- a/e2e/protractor.conf.js
+++ b/e2e/protractor.conf.js
@@ -42,7 +42,7 @@ const localConfig = {
     // polyfill for node10 or lower
     if (typeof globalThis === 'undefined') global.globalThis = {}
     jasmine.getEnv().addReporter({
-      specDone: async ({ status, id, fullName, ...rest }) => {
+      specDone: async ({ status, id, message, fullName, ...rest }) => {
         if (status === 'failed') {
           console.log(`spec failed, taking screenshot`)
           const b64 = await globalThis.IAVBase.takeScreenshot()
@@ -55,7 +55,7 @@ const localConfig = {
           )
           await asyncWrite(
             path.join(dir, `${id}.txt`),
-            JSON.stringify({ id, status, fullName }, null, 2),
+            JSON.stringify({ id, status, message, fullName }, null, 2),
             'utf-8'
           )
         }
diff --git a/e2e/src/advanced/urlParsing.prod.e2e-spec.js b/e2e/src/advanced/urlParsing.prod.e2e-spec.js
index 9158ecb3f134271d4600843e1fa57a0047366318..c761e47e3e8c84dcbb34a03bf5f01916490359a7 100644
--- a/e2e/src/advanced/urlParsing.prod.e2e-spec.js
+++ b/e2e/src/advanced/urlParsing.prod.e2e-spec.js
@@ -1,6 +1,4 @@
 const { AtlasPage } = require("../util")
-const proxy = require('selenium-webdriver/proxy')
-const { ARIA_LABELS } = require('../../../common/constants')
 
 describe('> url parsing', () => {
   let iavPage
@@ -77,12 +75,19 @@ describe('> url parsing', () => {
     await iavPage.wait(5000)
     await iavPage.waitForAsync()
     const log = await iavPage.getLog()
-    const filteredLog = log.filter(({ message }) => !/Access-Control-Allow-Origin/.test(message))
+    const filteredLog = log
+      // in headless & non gpu mode, a lot of webgl warnings are thrown
+      .filter(({ level }) => level.toString() === 'SEVERE')
+      .filter(({ message }) => !/Access-Control-Allow-Origin/.test(message))
 
     // expecting some errors in the console. In catastrophic event, there will most likely be looped errors (on each render cycle)
+    // capture logs and write to spec https://stackoverflow.com/a/24980483/6059235
     expect(
       filteredLog.length
-    ).toBeLessThan(50)
+    ).toBeLessThan(
+      50,
+      JSON.stringify(filteredLog)
+    )
   })
 
   it('> if niftiLayers are defined, parcellation layer should be hidden', async () => {