It relates to this change:
Fixed thread interrupts to save and restore ErrorLevel more fully, which fixes:
- Strings longer than 127 chars being truncated.
- Objects being discarded.
- Interruption by a timer sometimes causing ErrorLevel to be given hexadecimal formatting.
This had an unintended impact on backward-compatibility, so will be reverted soon and replaced with an alternative fix for the timer issue.
The problem is that previously, ErrorLevel was not reset when a new thread starts. Instead, ErrorLevel retains the value from the previous thread. (Since releasing v1.1.20.00 I've found comments by Chris indicating that this behaviour was intended, primarily for performance reasons.) When the new thread finishes, the value is restored to the value it had when the previous thread was interrupted. Currently in v1.1.20.00, ErrorLevel is cleared (made empty) when the new thread starts. This was unintended.
Note that a consequence of the old
behaviour is that your script might not work correctly if some other thread was running and had a non-zero ErrorLevel. In addition to UseErrorLevel, you should set ErrorLevel := 0
in the other IF branch or at the start of the hotkey.
As it is (without UseErrorLevel), there's no point in checking ErrorLevel because it's not set by any of the commands you've used.