If knowledge interface is not initialized before calling Action, the code fails when trying to apply postconditions but not when checking parameters.
After checking the source code I realized that validate_parameters method of CheckActionAndProcessEffects create the services that connect to KB ROSPlan by itself while apply_effects is using the knowledge interface of rosplan_pytools. And this explain why checking parameters works without initializing knowledge interface.
This seems wrong as same approach to connect to ROSPlan KB should be used by CheckActionAndProcessEffects. Therefore, it should be analyzed why the used approach is different and fix if same approach could be used.
More information: #17