Krikri::RemovedActionError
Raised for a playbook construct real ansible-core rejects at PARSE
time (before any task anywhere runs), not just one this engine hasn't
implemented yet. Deliberately bypasses the per-task (#parse_tasks) and
per-play (#parse_string) graceful-degradation rescues that swallow
ordinary parse errors into a "Warning: Skipping ..."/"Warning: Failed
to parse play ..." and keep going - those are correct for "this
engine doesn't support X yet" (an engine limitation), but wrong for
"real Ansible itself refuses to even start the run" (a playbook
written for a version of ansible-core this role no longer supports).
Propagates all the way to krikri-playbook.cr's own top-level "Error
parsing playbook:" handler (rc=1, nothing executes) - matching real
Ansible's own behavior exactly instead of executing PART of the play
and failing partway through for an unrelated reason. Found live
benchmarking robertdebock.awx (round 162): its own tasks/main.yml
uses ansible.builtin.include:, an action plugin real ansible-core
removed entirely after 2023-05-16 - real ansible-playbook 2.19.4
rejects the whole playbook immediately (rc=1, 0 tasks run); this
engine treated it as merely "Plugin not available: include" (the
same soft per-task skip as any not-yet-implemented module) and kept
executing every task after it, one of which then failed for a
completely different, real reason (insufficient host resources) -
visibly different final state, not just a cosmetic message mismatch.