Machine learning systems are notoriously difficult to protect from coding and logical mistakes. Unless a mistake produces a runtime error, it may remain hidden in a system for a long time and may contribute to the system achieving unsatisfactory results. Such mistakes are difficult to find because the system, being adaptive, will still work to some degree. This is also true of GP.
The most common reaction to a system not producing satisfactory results is to start playing with the parameters, the fitness function, the primitive set, etc. However, one should also consider the possibility of a coding mistake. The normal program validation techniques, such as inspection of critical regions of code, should be used to ensure everything is alright.
If the code is part of an established GP implementation, coding errors are less likely.1 A more probable source of coding errors is stretching the GP library beyond its original intended use. Reading the manual carefully is sometimes a good preventive cure for problems.