Chef uses the standard RFC 062 exit codes.
In your .kitchen.yml file, you can supply an array of exit codes in the “retry_on_exit_code” option to retry the operation in case the Chef script execution is interrupted. The usual values are
retry_on_exit_code: # An array of exit codes that can indicate that kitchen should retry the converge command. Defaults to an empty array. - 35 # Reboot is scheduled - 20 # The Windows system cannot find the device specified. - 1 # Generic failure
Chef exit codes
0: SUCCESS - Successful run - Any successful execution of a Chef utility should return this exit code 1: GENERIC_FAILURE - Failed execution - Generic error during Chef execution. 2: SIGINT_RECEIVED - SIGINT received - Received an interrupt signal 3: SIGTERM_RECEIVED - SIGTERM received - Received an terminate signal 35: REBOOT_SCHEDULED - Reboot Scheduled - Reboot has been scheduled in the run state 37: REBOOT_NEEDED - Reboot Needed - Reboot needs to be completed 41: REBOOT_FAILED - Reboot Failed - Initiated Reboot failed - due to permissions or any other reason 42: AUDIT_MODE_FAILURE - Audit Mode Failure - Audit mode failed, but chef converged successfully. 213: CLIENT_UPGRADED - Chef upgrade - Chef has exited during a client upgrade
Relevant Windows exit codes
20: ERROR_BAD_UNIT - The system cannot find the device specified.
The list of all Windows error codes is located at https://msdn.microsoft.com/en-us/library/windows/desktop/ms681381(v=vs.85).aspx