# Vault : ordinal not in range

**URL:** <https://forum.ansible.com/t/vault-ordinal-not-in-range/29318>\
**Category:** Ansible Project\
**Created:** [December 21, 2018, 5:46pm UTC](https://forum.ansible.com/t/vault-ordinal-not-in-range/29318 "2018-12-21T17:46:18Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![YvanM](https://avatars.discourse-cdn.com/v4/letter/y/65b543/32.png) [@YvanM](https://forum.ansible.com/u/YvanM)\
**Post date:** [December 21, 2018, 5:46pm UTC](https://forum.ansible.com/t/vault-ordinal-not-in-range/29318/1 "2018-12-21T17:46:18Z")

</div>

Hi,

I am using Ansible from a Debian testing host. Each time I try to use a vault file it makes Ansible crash. The content of the vault file is really simple:

`dyndns_pwd: 1234 smtpd_pwd: 1234`

I am sure that it contains only ASCII characters.

Here is the command line I use:

`ansible-playbook -i host.ini -bkK --vault-id @prompt main.yml -vvv`

Here is the log:

`

TASK [include\_vars] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
task path: /some/path/to/playbook/main.yml:33  
The full traceback is:  
Traceback (most recent call last):  
File “/usr/lib/python2.7/dist-packages/ansible/executor/task\_executor.py”, line 139, in run  
res = self.\_execute()  
File “/usr/lib/python2.7/dist-packages/ansible/executor/task\_executor.py”, line 603, in \_execute  
result = self.\_handler.run(task\_vars=variables)  
File “/usr/lib/python2.7/dist-packages/ansible/plugins/action/include\_vars.py”, line 131, in run  
self.\_load\_files(self.source\_file)  
File “/usr/lib/python2.7/dist-packages/ansible/plugins/action/include\_vars.py”, line 236, in \_load\_files  
b\_data, show\_content = self.\_loader.\_get\_file\_contents(filename)  
File “/usr/lib/python2.7/dist-packages/ansible/parsing/dataloader.py”, line 162, in \_get\_file\_contents  
return self.\_decrypt\_if\_vault\_data(data, b\_file\_name)  
File “/usr/lib/python2.7/dist-packages/ansible/parsing/dataloader.py”, line 132, in \_decrypt\_if\_vault\_data  
b\_data = self.\_vault.decrypt(b\_vault\_data, filename=b\_file\_name)  
File “/usr/lib/python2.7/dist-packages/ansible/parsing/vault/ **init**.py”, line 658, in decrypt  
plaintext, vault\_id, vault\_secret = self.decrypt\_and\_get\_vault\_id(vaulttext, filename=filename)  
File “/usr/lib/python2.7/dist-packages/ansible/parsing/vault/ **init**.py”, line 743, in decrypt\_and\_get\_vault\_id  
display.vvvvv(‘Decrypt%s successful with secret=%s and vault\_id=%s’ % (file\_slug, vault\_secret, vault\_secret\_id))  
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc3 in position 36: ordinal not in range(128)

fatal: [home-server]: FAILED! =\> {  
“msg”: “Unexpected failure during module execution.”,  
“stdout”: “”  
}  
`

Would you have any hint?

Thanks in advance,  
Yvan

---

<div class="post-metadata">

**Author:** ![Dick\_Visser](https://avatars.discourse-cdn.com/v4/letter/d/d9b06d/32.png) [@Dick\_Visser](https://forum.ansible.com/u/Dick_Visser)\
**Post date:** [December 21, 2018, 5:59pm UTC](https://forum.ansible.com/t/vault-ordinal-not-in-range/29318/2 "2018-12-21T17:59:20Z")

</div>

What version of ansible are you using on this host?  
I don't think it matters if the file you're encrypting contains ASCII  
or UTF8, or anything else, really.  
ansible can encrypt blobs just a well.

What does you encrypted vars file look like?  
Because that \*should\* be only numbers, with a header something like this:

$ANSIBLE\_VAULT;1.2;AES256

Dick

---

<div class="post-metadata">

**Author:** ![YvanM](https://avatars.discourse-cdn.com/v4/letter/y/65b543/32.png) [@YvanM](https://forum.ansible.com/u/YvanM)\
**Post date:** [December 21, 2018, 7:22pm UTC](https://forum.ansible.com/t/vault-ordinal-not-in-range/29318/3 "2018-12-21T19:22:58Z")

</div>

Thanks for your fast answer.

I am using Ansible 2.7.1+dfsg-2, but I am almost sure I had the same issue with 2.6.x.

My vault is the following:

`$ANSIBLE_VAULT;1.1;AES256 38613831366531323432326436616438363765303566326439336563313534386533396236383035 3363363335383833303665326262666563646465363862330a336639646631336265613639666365 62396566663234303533653934366536313765376135303162306432373662376638326634343432 3933633832353761300a333964393134316265653161633736656233306463346535313761303732 61653363623836383964663365663734346636323735623863396435303938306162663939363135 3634663662386334383263653430653965383162376532633664`

---

<div class="post-metadata">

**Author:** ![YvanM](https://avatars.discourse-cdn.com/v4/letter/y/65b543/32.png) [@YvanM](https://forum.ansible.com/u/YvanM)\
**Post date:** [December 26, 2018, 9:28am UTC](https://forum.ansible.com/t/vault-ordinal-not-in-range/29318/4 "2018-12-26T09:28:09Z")

</div>

For reference, it seems to be a bug: Ansible can not read a vault file when its path contains non ASCII characters.  
It has been reported :

- to Debian: [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=917114](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=917114)

- to upstream: [https://github.com/ansible/ansible/issues/50316](https://github.com/ansible/ansible/issues/50316)
