It turns out that destroy wasn't using the 'inline' ajax defined above but instead hard coding a call to utils.ajax. Fixing this did two things: Is means that PouchDB('foo').destroy() works AND it means I changed my code as @calvinmetcalf suggested for the static destroy, my destroy now creates a new 'hidden' instance of PouchDB(name passed to static destroy) and calls PouchDB(name passed to static destroy).destroy().