'Where can I find the Windows Task Scheduler exit codes list?

All I have found about the Windows Task Scheduler results are short details about just a few codes.
Does anybody knows about a complete list?
For example, I have not been able to locate anything about the error code 0xFF.

EDIT:For example, if I add this task (for testing a command line program called "Notifu"):

schtasks /create /tn "NotifuTest" /tr "d:\Temporal\Notifu\notifu64.exe /m 'Test'" /sc minute /mo 1 /sd 10/10/2010 /ru "SYSTEM"

The same command has been verified working by command-line.
This is the result (sorry, my Windows is in spanish); note the 0xFF (the program seems to be executing, but with no results:

enter image description here



Solution 1:[1]

Process exit codes are process specific. By convention a value of zero indicates success. The only reserved value is STILL_ACTIVE which has value 259 (0x103). That is returned by GetExitCodeProcess when the process is still active. To understand what the values mean you will have to consult the documentation of the process in question.

Solution 2:[2]

You can find a list here: http://msdn.microsoft.com/en-gb/library/windows/desktop/aa383604(v=vs.85).aspx

However it is not complete as I have encountered this result for exemple: 0x7FFBD3FA

Solution 3:[3]

I used the list on Wikipedia to create this C# method for mapping Task Scheduler error codes to messages, for the lazy ones out there :-)

private static string? MessageFromTaskSchedulerErrorCode(uint errorCode)
{
    return errorCode switch
    {
        0x0 => "The operation completed successfully.",
        0x1 => "Incorrect function called or unknown function called.",
        0x2 => "File not found.",
        0xa => "The environment is incorrect.",
        0x00041300 => "Task is ready to run at its next scheduled time.",
        0x00041301 => "The task is currently running.",
        0x00041302 => "The task has been disabled.",
        0x00041303 => "The task has not yet run.",
        0x00041304 => "There are no more runs scheduled for this task.",
        0x00041305 => "One or more of the properties that are needed to run this task have not been set.",
        0x00041306 => "The last run of the task was terminated by the user.",
        0x00041307 => "Either the task has no triggers or the existing triggers are disabled or not set.",
        0x00041308 => "Event triggers do not have set run times.",
        0x80010002 => "Call was canceled by the message filter",
        0x80041309 => "A task's trigger is not found.",
        0x8004130A => "One or more of the properties required to run this task have not been set.",
        0x8004130B => "There is no running instance of the task.",
        0x8004130C => "The Task Scheduler service is not installed on this computer.",
        0x8004130D => "The task object could not be opened.",
        0x8004130E => "The object is either an invalid task object or is not a task object.",
        0x8004130F => "No account information could be found in the Task Scheduler security database for the task indicated.",
        0x80041310 => "Unable to establish existence of the account specified.",
        0x80041311 => "Corruption was detected in the Task Scheduler security database",
        0x80041312 => "Task Scheduler security services are available only on Windows NT.",
        0x80041313 => "The task object version is either unsupported or invalid.",
        0x80041314 => "The task has been configured with an unsupported combination of account settings and run time options.",
        0x80041315 => "The Task Scheduler Service is not running.",
        0x80041316 => "The task XML contains an unexpected node.",
        0x80041317 => "The task XML contains an element or attribute from an unexpected namespace.",
        0x80041318 => "The task XML contains a value which is incorrectly formatted or out of range.",
        0x80041319 => "The task XML is missing a required element or attribute.",
        0x8004131A => "The task XML is malformed.",
        0x0004131B => "The task is registered, but not all specified triggers will start the task.",
        0x0004131C => "The task is registered, but may fail to start.Batch logon privilege needs to be enabled for the task principal.",
        0x8004131D => "The task XML contains too many nodes of the same type.",
        0x8004131E => "The task cannot be started after the trigger end boundary.",
        0x8004131F => "An instance of this task is already running.",
        0x80041320 => "The task will not run because the user is not logged on.",
        0x80041321 => "The task image is corrupt or has been tampered with.",
        0x80041322 => "The Task Scheduler service is not available.",
        0x80041323 => "The Task Scheduler service is too busy to handle your request. Please try again later.",
        0x80041324 => "The Task Scheduler service attempted to run the task, but the task did not run due to one of the constraints in the task definition.",
        0x00041325 => "The Task Scheduler service has asked the task to run.",
        0x80041326 => "The task is disabled.",
        0x80041327 => "The task has properties that are not compatible with earlier versions of Windows.",
        0x80041328 => "The task settings do not allow the task to start on demand.",
        0xC000013A => "The application terminated as a result of a CTRL+C.",
        0xC0000142 => "The application failed to initialize properly.",
        _ => null
    };
}

Some people have seen errors that didn't appear in MSDN documentation. I don't know if it's just the app that they were running (because you can get return codes from that as well, assuming it actually ran) but there's not much else I can do.

One could in addition also use Marshal.GetExceptionForHR to get possible HResult exceptions mapped to friendly messages, but other than that I don't know what else to do.

Solution 4:[4]

As was mentioned above, the exit codes reported by Task Scheduler depend on the program you invoke in the job.

Specifically for CMD.EXE (used when you run a .CMD or .BAT file), exit 0xFF means syntax error in the batch file.

CMD.EXE in Windows has been a Microsoft product for 25+ years and there is still no documentation of its exit codes. That's unprofessional.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 mwfearnley
Solution 2 Fab
Solution 3 Shahin Dohan
Solution 4 BobHy