The correct YAML key path that trips people up most often is confusing message queue monitoring (which is how IBM i signals a subsystem ending) with a generic "subsystem status" check. IBM i sends message CPF1240 (Subsystem &name; ended normally) or CPF1241 (Subsystem &name; ended abnormally) to QSYSOPR.
A working configuration block looks like this:
notifications:
- name: subsystem-down-alert
type: message_queue # ← must be "message_queue", not "subsystem_status"
message_queue: QSYS/QSYSOPR # ← fully qualified library/queue name
messages:
- id: CPF1240 # subsystem ended normally
- id: CPF1241 # subsystem ended abnormally
actions:
- type: email # or: teams, slack, sms, etc.
recipients:
- admin@example.com
Most common mistakes:
| Mistake |
Fix |
Using type: subsystem_status |
Change to type: message_queue — there is no native "subsystem status" monitor type |
Writing just QSYSOPR without the library |
Use the fully-qualified form QSYS/QSYSOPR |
Filtering on *ESCAPE only |
CPF1240/CPF1241 are *INFO/*COMP severity — don't filter them out |
| Missing the subsystem name filter |
Add a text_contains: "<subsystem-name>" filter if you only want one specific subsystem |
| Monitoring job log instead of QSYSOPR |
These messages are sent to QSYSOPR, not to the subsystem's job log |
Filtering to a specific subsystem
If you only want alerts for, say, QBATCH ending
messages:
- id: CPF1241
text_contains: "QBATCH" # matches the message text that includes the subsystem name