This is not a hard fail with a stacktrace but rather a UX-fail where the player gets neither any drones nor an explanation what he's expected to do...
As far as i can see the initial drones are provided "on player creation".
This works out well if a new map is started or if a new player joins an existing game.
It does not work if the mod is added to the game at a place mid game.
From what I understand regarding the factorio events I would assume that script.on_init() would be a better place to provide the starting items.
https://lua-api.factorio.com/latest/Data-Lifecycle.html (Chapter 4. control.lua init )
( P.S. I would love to see a "Peacefull Mode" startup setting that disables all combat related features/items )