# Ansible-Playbook Return/Exit Codes

**URL:** <https://forum.ansible.com/t/ansible-playbook-return-exit-codes/19065>\
**Category:** Ansible Project\
**Created:** [August 19, 2015, 9:52pm UTC](https://forum.ansible.com/t/ansible-playbook-return-exit-codes/19065 "2015-08-19T21:52:57Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ansible\_Madness](https://avatars.discourse-cdn.com/v4/letter/a/a183cd/32.png) [@Ansible\_Madness](https://forum.ansible.com/u/Ansible_Madness)\
**Post date:** [August 19, 2015, 9:52pm UTC](https://forum.ansible.com/t/ansible-playbook-return-exit-codes/19065/1 "2015-08-19T21:52:57Z")

</div>

Could someone direct me to a list of ansible-playbook exit codes? So far I’ve seen 0 which appears to be all OK with changes, however I’ve also seen 2 and 3. Something official would be great rather than my assumptions 🙂

I’m attempting to check the exit code of a playbook run to determine if i should run another playbook or not (sorta if a playbook run #1 had any error then run ‘recovery’ playbook #2)

Any thoughts welcome of course

Ansible version 1.9.2 (RHEL6)

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [August 20, 2015, 2:59am UTC](https://forum.ansible.com/t/ansible-playbook-return-exit-codes/19065/2 "2015-08-20T02:59:02Z")

</div>

no oficial docs, but this is from the new ansible binary in devel:

&nbsp;&nbsp;&nbsp;&nbsp;except AnsibleOptionsError as e:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cli.parser.print\_help()  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.error(str(e), wrap\_text=False)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.exit(5)  
&nbsp;&nbsp;&nbsp;&nbsp;except AnsibleParserError as e:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.error(str(e), wrap\_text=False)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.exit(4)  
&nbsp;&nbsp;&nbsp;&nbsp;except AnsibleHostUnreachable as e:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.error(str(e))  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.exit(3)  
&nbsp;&nbsp;&nbsp;&nbsp;except AnsibleHostFailed as e:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.error(str(e))  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.exit(2)  
&nbsp;&nbsp;&nbsp;&nbsp;except AnsibleError as e:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.error(str(e), wrap\_text=False)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.exit(1)  
&nbsp;&nbsp;&nbsp;&nbsp;except KeyboardInterrupt:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.error("User interrupted execution")  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.exit(99)  
&nbsp;&nbsp;&nbsp;&nbsp;except Exception as e:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.error("Unexpected Exception: %s" % str(e), wrap\_text=False)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.exit(250)
