wp_insert_post let users post to without login…broke

wp_insert_post() makes use of the current user at several points, if memory serves.

So, you’d want to use wp_set_current_user() to switch that to some shared author user, and then switch it back to its original value when you’re done.

Alternatively, require users to be logged in and allow all groups to create drafts.