DEV HELP APPRECIATED :) Hi all. I'm running a Storm King's Thunder with the Store-bought pack for a party of 3 currently. We'd just got to Nightstone (which i'd leveled up a fair bit as the party is c.L5 and 3 players) and were on an extra random encounter tile i'd added in with a few other premium store-bought images to cover 'approach to' as i've modified the plot a bit to link the two campaigns more clearly. Unfortunately, my campaign has crashed and now refuses to load for any reason (players are having the same issue as me, the GM); it gets about halfway into loading then freezes, and no amount of waiting will unfreeze it. All other campaigns custom and otherwise seem to work just fine. Thinking that it was a problem unique to that campaign, and I made another fresh campaign assuming it would be the easiest way to sort it, only to encounter the same issue within 10m in the 'new' campaign after loading in Storm Kings before even getting to the custom tile(s). To be clear; this issue did not show up until the 3rd session of the new campaign after perhaps 10 hours (and 3-4 hours on that tile having pretty much completed it with the players) in it, so wasn't a 'right off the bat' bug and i've been using /R20 for circa 9 months largely problem-free on this machine (which is v. powerful, gaming rig so not a memory issue). I've worked through the troubleshooting on the wiki already, specifically (first time asking for support here, let me know if missed anything): -Right browser - I use Chrome, have tried it in Firefox also, problem is the same. -Disabled addons (I only use 2-3) when troubleshooting. -Cleared cache (both manually and using external programmes such as CC cleaner). -No settings have changed in my anti-virus (Bullguard). Here is my 'support details': - The issue is easy to reproduce; it happens the second you log into the campaign on the currently active 'players' tile, can't do anything as it happens right away locking up the browser until the wait/kill box pops up. Normally i'd run with AdBlock and LastPass active, but it seems the issue persists even after disabling and clearing cache accordingly. I've had all these addons in the browser since day 1 of using R20 (see above). Full log from console posted below; seems to some image errors is the only thing standing out. Any help from the Devs (or just go into it yourself if easier) would be appreciated. The Campaign should be the only Storm King's one on my account, but just for clarity the name is 'It's only a flesh wound...' Navigated to <a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a> app.js?1507652832:31 70 app.js?1507652832:32 TOUCH SUPPORTED: true app.js?1507652832:32 USING WEBGL ACCELERATION... app.js?1507652832:32 WEBGL STARTUP SUCCESS app.js?1507652832:33 Custom Sheet Translation app.js?1507652832:26 select app.js?1507652832:26 Switch mode to select app.js?1507652832:43 Initializing new dice engine with randomness... app.js?1507652832:43 Using random entropy app.js?1507652832:46 Compiling sheet... app.js?1507652832:46 Found rolltemplate: simple app.js?1507652832:46 Found rolltemplate: atk app.js?1507652832:46 Found rolltemplate: dmg app.js?1507652832:46 Found rolltemplate: atkdmg app.js?1507652832:46 Found rolltemplate: desc app.js?1507652832:46 Found rolltemplate: spell app.js?1507652832:46 Found rolltemplate: traits app.js?1507652832:46 Found rolltemplate: npc app.js?1507652832:46 Found rolltemplate: npcatk app.js?1507652832:46 Found rolltemplate: npcdmg app.js?1507652832:46 Found rolltemplate: npcaction app.js?1507652832:46 Found webworker script app.js?1507652832:46 Finding sheet rolls... app.js?1507652832:48 window resize app.js?1507652832:32 Final set zoom! app.js?1507652832:32 UPDATE GL SIZE! app.js?1507652832:32 Final set zoom! tutorial_tips.js:7 tuts loaded (index):1 Mixed Content: The page at ' <a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a> ' was loaded over HTTPS, but requested an insecure image ' <a href="http://imgsrv.roll20.net/?src=raw.githubusercontent.com/Roll20/roll20-character-sheets/master/5th%2520Edition%2520OGL%2520by%2520Roll20/images/srd5_360.png" rel="nofollow">http://imgsrv.roll20.net/?src=raw.githubusercontent.com/Roll20/roll20-character-sheets/master/5th%2520Edition%2520OGL%2520by%2520Roll20/images/srd5_360.png</a> '. This content should also be served over HTTPS. (index):1 Mixed Content: The page at ' <a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a> ' was loaded over HTTPS, but requested an insecure image ' <a href="http://imgsrv.roll20.net/?src=raw.githubusercontent.com/Roll20/roll20-character-sheets/master/5th%2520Edition%2520OGL%2520by%2520Roll20/images/weight_lbs.png" rel="nofollow">http://imgsrv.roll20.net/?src=raw.githubusercontent.com/Roll20/roll20-character-sheets/master/5th%2520Edition%2520OGL%2520by%2520Roll20/images/weight_lbs.png</a> '. This content should also be served over HTTPS. 3(index):1 Mixed Content: The page at ' <a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a> ' was loaded over HTTPS, but requested an insecure image ' <a href="http://imgsrv.roll20.net/?src=i.imgur.com/ZgULBCp.png" rel="nofollow">http://imgsrv.roll20.net/?src=i.imgur.com/ZgULBCp.png</a> '. This content should also be served over HTTPS. sheetsandboxworker.js?20170926:sourcemap:260 Starting up WEB WORKER app.js?1507652832:38 Final page load. app.js?1507652832:48 Refresh jukebox List! app.js?1507652832:38 Auth'ed. app.js?1507652832:38 Go post auth! app.js?1507652832:48 Refresh jukebox List! app.js?1507652832:38 initial setup app.js?1507652832:48 Refresh jukebox List! app.js?1507652832:36 T.s {attributes: {…}, _escapedAttributes: {…}, cid: "c0", changed: {…}, _silent: {…}, …} app.js?1507652832:41 refershing page listings! app.js?1507652832:38 Got players value... app.js?1507652832:38 joining game... app.js?1507652832:36 Player -KtmAA-l5H6I-slpMI8L is offline... app.js?1507652832:36 Global Volume: 53=0.28090000000000004 app.js?1507652832:36 Player -Ku_oIgyo1kd5h1Xq10n is offline... app.js?1507652832:36 Player -Ku_s7jeVKR2ej6xY_w7 is offline... app.js?1507652832:36 Player -Ku_s9aYfyf-fG0aYxqE is offline... app.js?1507652832:38 Deferred finish joining... app.js?1507652832:31 Firebase Online app.js?1507652832:46 Refresh Journal List! app.js?1507652832:46 Search took 58ms 47app.js?1507652832:35 Full load page! app.js?1507652832:38 We have 47 pages app.js?1507652832:38 Scan for new plays! app.js?1507652832:38 handle page changes app.js?1507652832:38 false thumb.xcf:1 GET <a href="https://s3.amazonaws.com/files.d20.io/images/4012" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/4012</a>... 403 (Forbidden) Image (async) (anonymous) @ jquery.1.8.2.min.js:2 access @ jquery.1.8.2.min.js:2 html @ jquery.1.8.2.min.js:2 (anonymous) @ app.js?1507652832:54 k @ jquery.1.8.2.min.js:2 fireWith @ jquery.1.8.2.min.js:2 y @ jquery.1.8.2.min.js:2 d @ jquery.1.8.2.min.js:2 XMLHttpRequest.send (async) (anonymous) @ VM63:1 send @ jquery.1.8.2.min.js:2 ajax @ jquery.1.8.2.min.js:2 p.(anonymous function) @ jquery.1.8.2.min.js:2 d20.library.buildRecentUploads @ app.js?1507652832:54 (anonymous) @ app.js?1507652832:36 (anonymous) @ base.js?1506449138:1 setTimeout (async) k.delay @ base.js?1506449138:1 k.defer @ base.js?1506449138:1 initialize @ app.js?1507652832:36 t.Model @ base.js?1506449138:1 T.s @ base.js?1506449138:1 _prepareModel @ base.js?1506449138:1 add @ base.js?1506449138:1 reset @ base.js?1506449138:1 (anonymous) @ app.js?1507652832:38 (anonymous) @ firebase.2.4.0.js:201 gc @ firebase.2.4.0.js:52 cc @ firebase.2.4.0.js:30 dc @ firebase.2.4.0.js:29 h.Kb @ firebase.2.4.0.js:220 h.Ld @ firebase.2.4.0.js:188 Eh.Ld @ firebase.2.4.0.js:178 (anonymous) @ firebase.2.4.0.js:176 yh @ firebase.2.4.0.js:170 La.onmessage @ firebase.2.4.0.js:169 thumb.jpeg:1 GET <a href="https://s3.amazonaws.com/files.d20.io/images/3948" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/3948</a>... 403 (Forbidden) Image (async) (anonymous) @ jquery.1.8.2.min.js:2 access @ jquery.1.8.2.min.js:2 html @ jquery.1.8.2.min.js:2 (anonymous) @ app.js?1507652832:54 k @ jquery.1.8.2.min.js:2 fireWith @ jquery.1.8.2.min.js:2 y @ jquery.1.8.2.min.js:2 d @ jquery.1.8.2.min.js:2 XMLHttpRequest.send (async) (anonymous) @ VM63:1 send @ jquery.1.8.2.min.js:2 ajax @ jquery.1.8.2.min.js:2 p.(anonymous function) @ jquery.1.8.2.min.js:2 d20.library.buildRecentUploads @ app.js?1507652832:54 (anonymous) @ app.js?1507652832:36 (anonymous) @ base.js?1506449138:1 setTimeout (async) k.delay @ base.js?1506449138:1 k.defer @ base.js?1506449138:1 initialize @ app.js?1507652832:36 t.Model @ base.js?1506449138:1 T.s @ base.js?1506449138:1 _prepareModel @ base.js?1506449138:1 add @ base.js?1506449138:1 reset @ base.js?1506449138:1 (anonymous) @ app.js?1507652832:38 (anonymous) @ firebase.2.4.0.js:201 gc @ firebase.2.4.0.js:52 cc @ firebase.2.4.0.js:30 dc @ firebase.2.4.0.js:29 h.Kb @ firebase.2.4.0.js:220 h.Ld @ firebase.2.4.0.js:188 Eh.Ld @ firebase.2.4.0.js:178 (anonymous) @ firebase.2.4.0.js:176 yh @ firebase.2.4.0.js:170 La.onmessage @ firebase.2.4.0.js:169 thumb.jpeg:1 GET <a href="https://s3.amazonaws.com/files.d20.io/images/4001" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/4001</a>... 403 (Forbidden) Image (async) (anonymous) @ jquery.1.8.2.min.js:2 access @ jquery.1.8.2.min.js:2 html @ jquery.1.8.2.min.js:2 (anonymous) @ app.js?1507652832:54 k @ jquery.1.8.2.min.js:2 fireWith @ jquery.1.8.2.min.js:2 y @ jquery.1.8.2.min.js:2 d @ jquery.1.8.2.min.js:2 XMLHttpRequest.send (async) (anonymous) @ VM63:1 send @ jquery.1.8.2.min.js:2 ajax @ jquery.1.8.2.min.js:2 p.(anonymous function) @ jquery.1.8.2.min.js:2 d20.library.buildRecentUploads @ app.js?1507652832:54 (anonymous) @ app.js?1507652832:36 (anonymous) @ base.js?1506449138:1 setTimeout (async) k.delay @ base.js?1506449138:1 k.defer @ base.js?1506449138:1 initialize @ app.js?1507652832:36 t.Model @ base.js?1506449138:1 T.s @ base.js?1506449138:1 _prepareModel @ base.js?1506449138:1 add @ base.js?1506449138:1 reset @ base.js?1506449138:1 (anonymous) @ app.js?1507652832:38 (anonymous) @ firebase.2.4.0.js:201 gc @ firebase.2.4.0.js:52 cc @ firebase.2.4.0.js:30 dc @ firebase.2.4.0.js:29 h.Kb @ firebase.2.4.0.js:220 h.Ld @ firebase.2.4.0.js:188 Eh.Ld @ firebase.2.4.0.js:178 (anonymous) @ firebase.2.4.0.js:176 yh @ firebase.2.4.0.js:170 La.onmessage @ firebase.2.4.0.js:169 app.js?1507652832:48 Refresh jukebox List! app.js?1507652832:34 Do refresh link cache! app.js?1507652832:38 init active page! app.js?1507652832:35 activate page! app.js?1507652832:35 FULLY ACTIVATE VIEWS FOR PAGE. app.js?1507652832:46 Refresh Journal List! app.js?1507652832:46 Search took 507ms app.js?1507652832:35 Reorder by ZORDER app.js?1507652832:35 Graphics: 0 app.js?1507652832:35 Paths: 0 app.js?1507652832:41 refershing page listings! app.js?1507652832:35 Reorder by ZORDER 16app.js?1507652832:31 new caster! app.js?1507652832:35 Swapping <a href="https://s3.amazonaws.com/files.d20.io/marketplace" rel="nofollow">https://s3.amazonaws.com/files.d20.io/marketplace</a>... to <a href="https://s3.amazonaws.com/files.d20.io/marketplace" rel="nofollow">https://s3.amazonaws.com/files.d20.io/marketplace</a>... 2app.js?1507652832:35 Swapping <a href="https://s3.amazonaws.com/files.d20.io/marketplace" rel="nofollow">https://s3.amazonaws.com/files.d20.io/marketplace</a>... to <a href="https://s3.amazonaws.com/files.d20.io/marketplace" rel="nofollow">https://s3.amazonaws.com/files.d20.io/marketplace</a>... app.js?1507652832:35 Swapping <a href="https://s3.amazonaws.com/files.d20.io/marketplace" rel="nofollow">https://s3.amazonaws.com/files.d20.io/marketplace</a>... to <a href="https://s3.amazonaws.com/files.d20.io/marketplace" rel="nofollow">https://s3.amazonaws.com/files.d20.io/marketplace</a>... app.js?1507652832:35 Swapping <a href="https://s3.amazonaws.com/files.d20.io/marketplace" rel="nofollow">https://s3.amazonaws.com/files.d20.io/marketplace</a>... to <a href="https://s3.amazonaws.com/files.d20.io/marketplace" rel="nofollow">https://s3.amazonaws.com/files.d20.io/marketplace</a>... app.js?1507652832:31 Uncaught DOMException: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The source width is 0. at h ( <a href="https://app.roll20.net/assets/app.js?1507652832:31:10309" rel="nofollow">https://app.roll20.net/assets/app.js?1507652832:31:10309</a> ) at <a href="https://app.roll20.net/assets/app.js?1507652832:3" rel="nofollow">https://app.roll20.net/assets/app.js?1507652832:3</a>... at Array.forEach (<anonymous>) at Function.k.each.k.forEach ( <a href="https://app.roll20.net/assets/base.js?1506449138:1:1628" rel="nofollow">https://app.roll20.net/assets/base.js?1506449138:1:1628</a> ) at m ( <a href="https://app.roll20.net/assets/app.js?1507652832:31:15425" rel="nofollow">https://app.roll20.net/assets/app.js?1507652832:31:15425</a> ) at Object.d20.canvas_overlay.postProcessing ( <a href="https://app.roll20.net/assets/app.js?1507652832:31:29346" rel="nofollow">https://app.roll20.net/assets/app.js?1507652832:31:29346</a> ) at Object.d20.engine.postProcessing ( <a href="https://app.roll20.net/assets/app.js?1507652832:32:20099" rel="nofollow">https://app.roll20.net/assets/app.js?1507652832:32:20099</a> ) at i.renderAll ( <a href="https://app.roll20.net/assets/app.js?1507652832:27:24833" rel="nofollow">https://app.roll20.net/assets/app.js?1507652832:27:24833</a> ) at d20.engine.renderLoop ( <a href="https://app.roll20.net/assets/app.js?1507652832:33:26833" rel="nofollow">https://app.roll20.net/assets/app.js?1507652832:33:26833</a> ) h @ app.js?1507652832:31 (anonymous) @ app.js?1507652832:31 k.each.k.forEach @ base.js?1506449138:1 m @ app.js?1507652832:31 d20.canvas_overlay.postProcessing @ app.js?1507652832:31 d20.engine.postProcessing @ app.js?1507652832:32 renderAll @ app.js?1507652832:27 d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 requestAnimationFrame (async) d20.engine.renderLoop @ app.js?1507652832:33 3app.js?1507652832:35 setting src app.js?1507652832:30 Cols: 2 Rows: 2 app.js?1507652832:30 Took 1ms to generate cache. 2app.js?1507652832:35 setting src app.js?1507652832:30 Cols: 2 Rows: 2 app.js?1507652832:30 Took 20ms to generate cache. app.js?1507652832:30 Cols: 2 Rows: 2 app.js?1507652832:30 Took 30ms to generate cache. app.js?1507652832:35 Reorder by ZORDER app.js?1507652832:48 window resize app.js?1507652832:32 Final set zoom! app.js?1507652832:32 UPDATE GL SIZE! app.js?1507652832:32 Final set zoom! app.js?1507652832:48 window resize app.js?1507652832:32 Final set zoom! app.js?1507652832:32 UPDATE GL SIZE! app.js?1507652832:32 Final set zoom! app.js?1507652832:48 window resize app.js?1507652832:32 Final set zoom! app.js?1507652832:32 UPDATE GL SIZE! app.js?1507652832:32 Final set zoom! app.js?1507652832:48 window resize app.js?1507652832:32 Final set zoom! app.js?1507652832:32 UPDATE GL SIZE! app.js?1507652832:32 Final set zoom! app.js?1507652832:48 window resize app.js?1507652832:32 Final set zoom! app.js?1507652832:32 UPDATE GL SIZE! app.js?1507652832:32 Final set zoom! app.js?1507652832:48 window resize app.js?1507652832:32 Final set zoom! app.js?1507652832:32 UPDATE GL SIZE! app.js?1507652832:32 Final set zoom!