I reported the following bug: https://issuetracker.unity3d.com/is...d-function-is-not-called-when-the-build-fails Answer from QA: The API: https://docs.unity3d.com/ScriptReference/Build.IPostprocessBuildWithReport.html This object has the info: https://docs.unity3d.com/ScriptReference/Build.Reporting.BuildReport.html https://docs.unity3d.com/ScriptReference/Build.Reporting.BuildResult.html I think it's embarrassing that answer. I mean, you telling me that depending on X it's called or it's not called. Then call it "IPostprocessSuccessfulBuildWithReport" to make its behavior clear. In my case I want to do operations that depend on whether or not it fails and you are saying you can't guarantee that behavior. This API is very confusing, there is nothing documented on that subject although in fact it is not something to document but to correct so that it works as it should and always guarantees your call regardless of the step in which it fails. You're seriously telling me it's "by design" and it's not going to be corrected?