Service Worker giving non-Response value '[Object]'

I hobbled together a service worker script using The Offline Cookbook and documentation from Google.

Not sure what I have wrong here… it is giving the following:
Failed to load ‘http://localhost:4000/’. A ServiceWorker passed a promise to FetchEvent.respondWith() that resolved with non-Response value ‘[Object]’.

Script is on pastebin here.

not that my reply will be any help at all, but

I gave up following the cookbook, and moved to workbox.
see it in action:

The thing is, I have a bias against incorporating third party tools and the like. From what I can gather elsewhere, and the fact that it works fine in Google Chrome … I think it’s some kind of bug in Firefox.