System Semaphore Release uses Call Library Function Node to call ReleaseSemaphore in the Windows kernel. The documentation for this API indicates that a return value of 0 indicates an error and a return value of non-zero indicates no error. The System Semaphore Release checks for a zero return value and generates the error if it is found. This is backward. Also, I would find an error value of 1 more friendly than an error value of 0. At least this won't send you on wild goose chases.