diff --git a/README-vault.md b/README-vault.md
index c5dfa6a469266f808268044597f43268697dbe4e..9098b04987b81911af25303287939186dc48805e 100644
--- a/README-vault.md
+++ b/README-vault.md
@@ -246,7 +246,7 @@ There is only a return value if `state` is `retrieved`.
 
 Variable | Description | Returned When
 -------- | ----------- | -------------
-`vault` | Vault dict with archived data. (dict) <br>Options: | If `state` is `retrieved`.
+`vault` | Vault dict with archived data. (dict) <br>Options: | If `state` is `retrieved` and `out` is not defined.
 &nbsp; | `data` - The vault data. | Always
 
 
diff --git a/plugins/modules/ipavault.py b/plugins/modules/ipavault.py
index 78ca8a54a23f114e2e19925e8394ff725defed13..fef5b69ccf786defb34b2822f52368d93e9ad3e7 100644
--- a/plugins/modules/ipavault.py
+++ b/plugins/modules/ipavault.py
@@ -923,14 +923,12 @@ def main():
                 elif command == 'vault_retrieve':
                     if 'result' not in result:
                         raise Exception("No result obtained.")
-                    if 'data' in result['result']:
-                        data_return = exit_args.setdefault('vault', {})
-                        data_return['data'] = result['result']['data']
-                    elif 'vault_data' in result['result']:
-                        data_return = exit_args.setdefault('vault', {})
-                        data_return['data'] = result['result']['vault_data']
+                    if "data" in result["result"]:
+                        data_return = exit_args.setdefault("vault", {})
+                        data_return["data"] = result["result"]["data"]
                     else:
-                        raise Exception("No data retrieved.")
+                        if not datafile_out:
+                            raise Exception("No data retrieved.")
                     changed = False
                 else:
                     if "completed" in result:
diff --git a/tests/vault/test_vault_asymmetric.yml b/tests/vault/test_vault_asymmetric.yml
index 268922c1972d9477186f009b57a517d687a2f235..1e675a04bf936f96c1ea49a7d63eacf64809dc05 100644
--- a/tests/vault/test_vault_asymmetric.yml
+++ b/tests/vault/test_vault_asymmetric.yml
@@ -52,7 +52,7 @@
       private_key: "{{ lookup('file', 'private.pem') | b64encode }}"
       state: retrieved
     register: result
-    failed_when: result.changed
+    failed_when: result.changed or result.failed or (result.vault.data | default(false))
 
   - name: Verify retrieved data.
     slurp:
diff --git a/tests/vault/test_vault_standard.yml b/tests/vault/test_vault_standard.yml
index 6ccb0d5fb31cb230a7da0f7877b364bdb399bcbb..4a9d9904284984bee258624f4e50c87b4eae74a4 100644
--- a/tests/vault/test_vault_standard.yml
+++ b/tests/vault/test_vault_standard.yml
@@ -48,7 +48,7 @@
       out: "{{ ansible_env.HOME }}/data.txt"
       state: retrieved
     register: result
-    failed_when: result.changed
+    failed_when: result.changed or result.failed or (result.vault.data | default(false))
 
   - name: Verify retrieved data.
     slurp:
diff --git a/tests/vault/test_vault_symmetric.yml b/tests/vault/test_vault_symmetric.yml
index 5394c7104bad4d2bb451be113e6d192796c6a895..966bc55761a1b9be3511cc561759c82910acb6f6 100644
--- a/tests/vault/test_vault_symmetric.yml
+++ b/tests/vault/test_vault_symmetric.yml
@@ -53,7 +53,7 @@
       out: "{{ ansible_env.HOME }}/data.txt"
       state: retrieved
     register: result
-    failed_when: result.changed
+    failed_when: result.changed or result.failed or (result.vault.data | default(false))
 
   - name: Verify retrieved data.
     slurp: