There is a bug in WordPress’s plugin activation related to variable collisions. When WordPress activates the plugins it executes them within the scope of the activate_plugin function. The problem is that this scope is full of other variables that can collide with your plugin’s top scope.