Vy db.end() volání zařadí spojení do fronty, aby se uzavřelo po SELECT byla dokončena, takže když se pokusíte provést vnitřní INSERT dotazu, připojení k databázi bylo uzavřeno, proto došlo k chybě PROTOCOL_ENQUEUE_AFTER_QUIT, protože se pokoušíte zařadit nový příkaz do fronty po uzavření připojení.
V závislosti na tom, jak vytváříte připojení, byste měli buď přesunout db.end() volání uvnitř zpětných volání nebo nemají db.end() vůbec zavolat, pokud je spojení otevřeno při startu programu.