Just a heads up, I had to code a workaround for this very issue in our WPMU DEV MarketPress plugin.
You can see the details here: https://premium.wpmudev.org/forums/topic/marketpress-conflict-with-pods-plugin?replies=9#post-334908
Ok, there seemed to be a bug in PODS in their activation function. It was only run on activation, or first install pageload. Something in it is unsetting the $wp_query object before the ‘pre_get_posts’ action hook which is supposed to pass $wp_query, already initialized (hence it’s a PODs bug as it’s breaking a core hook).
I was able to put a workaround in the ‘pre_get_posts’ in MarketPress’s situation as didn’t need to use that filter admin side, but this issue could cause problems with other plugins as well.
Essentially I think you should find a way to not call get_posts() before the main WP query. All those hooks like ‘parse_query’ and ‘pre_get_posts’ assume the $wp_query global is set, and pass it as a reference to be accessed. So of course plugin authors would expect it to be set already.
Note this problem only seems to be in your initial activation or first page load after activation function. If I disabled those hooks, activated pods, then reenabled them all was fine. I’m sure you can find a different way to code that for better compatibility of other plugins.
Thanks!