Every mission, friendly code and hull function description includes a section Preconditions listing all preconditions for the respective action. We believe these sections to be complete and correct. Therefore, you should be able to figure out why it didn't work by checking the preconditions.
Most of these actions now also generate failure notices in util.dat. These records are intended for diagnoses of this kind, and do often not have a subspace-message counterpart. You can read your util.dat using a program such as or .
Note that it is not always easy to decide whether a ship is trying to do something and fails, or whether it is not trying to do it at all. Therefore, such failure reports are not generated for all ships that do not do something.