Timeouts Do Not Write to Engine.log When 'Notify on Timeout' is Not Checked

@peternlewis: I've noticed that action failures and timeouts behave differently with respect to reporting to the Engine.log.

Failures always report to the Engine.log, regardless of the Notify on Failure setting:


Timeouts, on the other hand, are not logged unless Notify on Timeout is checked.


Why is there a difference? For debugging, my preference would be that both report to the Engine.log regardless of the gear setting.

Thank you.


Here's the test macro...

Download: Bad Macro :scream_cat:.kmmacros (3.3 KB)

Macro-Image


Macro-Notes
  • Macros are always disabled when imported into the Keyboard Maestro Editor.
    • The user must ensure the macro is enabled.
    • The user must also ensure the macro's parent macro-group is enabled.

System Information
  • macOS 14.2 (23C5055b) PRE-RELEASE SEED SOFTWARE
  • Keyboard Maestro v11.0.2

An action that times out, does not notify you, and does not abort the macro, is not considered an error. It is considered to be doing exactly what is expected of it. So it is not reported in the log.

Well, I'd say that depends. For example, one might include some actions they don't normally expect to timeout, but if some abnormal conditions occur, the actions do timeout (so that the macro doesn't hang).

But I can also see your point, @peternlewis. And since the current behavior is not going to change, one could modify the macro as follows:

I got bit by this as well.

I found that even if an action does abort the macro, the timeout is still not logged to Engine.log unless notify is on.

This makes reasonable sense - for things you expect to happen, you turn off notification, and so you wouldn't also want that to fill up the log.

Huh, I see it differently. In my eyes an "abort" is always an error / unhappy path, and I would expect all errors to be logged. I turn off notifications because the error doesn't merit being addressed immediately. The macro in question just does some nice-to-have system stats collection, and it's fine if it fails for a few days. I'm glad I wasn't interrupted, but I do wish I could have found more detail about the failure in the log file once I went to look.