A render can be marked as failed if the renderer or Deadline returns a non zero exit code. Some examples of how a render fails on exit codes are below:
- When the process exit code is other than zero but the job writes the output you can add some code in the Deadline plugin to safely ignore the exit code. This can be done only for the applications which run in non-batch mode otherwise the efficiency of batch mode will be affected if render application exits on every task
- Workaround is to add the CheckExitCode callback to the plugin and setup an ignore for exit code. You will need to first backup the plugin from [Repo]/plugins/<plugin> and then edit it like below:
self.CheckExitCodeCallback += self.CheckExitCode #check where similar functions in the plugin are called put this there
#check where all other functions are defined put this definition there
def CheckExitCode( self, exitCode ):
if exitCode == <use the exit code you get for the failure>:
self.LogInfo( "Renderer reported an error with error code <error code you got>. This will be ignored, since the option to ignore it is specified in the Job Properties." )
elif exitCode != 0:
self.FailRender( "Renderer returned non-zero error code %d. Check the renderer's output." % exitCode )
- When the renderer exit code is due to an actual error and no output is written, you will need to follow our troubleshooting docs which explains about how to find out the exit code when the render is isolated from Deadline:
- You will need to isolate the issue from Deadline as explained in the docs and to get more information about the exit code you can run echo %ERRORLEVEL% on Windows or echo $? on OS X and Linux to see what exit number the program returned when it closed. In general, any exit code other than zero denotes an error.
- When the process exit code is a large negative number like below:
Go to the plugins documentation in our docs for Application Plugins and find the error code in FAQs, follow the workarounds and troubleshooting guidelines from there. However, if the output is written and then the application exits for some reason then you can follow step # 1 to add some lines in the plugin for safely ignoring the exit code.
If you are unsure please reach out to us, here are details how: https://support.thinkboxsoftware.com/