There are cases a "Release Candidate" state transition is blocked but there is no indication of why this is so in the Publish report. Related Knowledge Base is KB0026023. That is confusing behavior, because:
- That KB seems to be assuming different concept on "fatal error" than Ant. In case of Ant, the errors from Ant subtasks are assumed as real fatal error unless Ant failonerror property is set to "true". That will allow Ant/DITA-OT developers to take try-catch-style processing. However, KB is probably assuming some certain types of Ant subtask errors are necessarily assumed as fatal error not trusting DITA-OT exit code.
- When the case occurred, both ishrunditaot.ps1 script and Ant (of DITA-OT processing) returns exit code '0', that means success (no fatal error). Therefore, event log states "Success". However, "Release Candidate" state transition is still blocked by the reason that the KB states. It appears that ISHRUNDITAOTWITHCOPYIMAGES plugin implemented event logging than what KB assumes right about fatal error processing.
- Also, when the case occurred, DITA-OT log is not always with such fatal error message that KB states. Nobody knows which the exact warning/error messages of DITA-OT log relate to the KB. However, it is not fatal error for DITA-OT/Ant, so that DITA-OT processing does not terminate with that. So, it takes a lot to identify which of DITA-OT processing messages in the log are related to the KB.
It seems the KB is taking radical approach about error processing than Ant and DITA-OT developer think of. Actually, there was a case DITA-OT generated expected output, but the state transition was blocked. So, I feel the position stated by the KB might not be well reasonable, and I wish it stops doing that. However, if what stated by KB is really needed by some reason, I suggest improving the event log processing by:
- Stating "Warning" instead of "Success" when it encounters the case "Release Candidate" state transition will be blocked
- In the event action message, state the exact error that ISHRUNDITAOTWITHCOPYIMAGES plugin assumes fatal but ishrunditaot.ps1 script and Ant don't, maybe pinpointing the error message in DITA-OT log