diff --git a/ansible/roles/kibana/tasks/post_config.yml b/ansible/roles/kibana/tasks/post_config.yml
index 108c25662fdf6776542da67fd25e2747ee902c6e..75536f319c3b1ed251482f0d3905f0451d492b9a 100644
--- a/ansible/roles/kibana/tasks/post_config.yml
+++ b/ansible/roles/kibana/tasks/post_config.yml
@@ -11,7 +11,13 @@
     method: PUT
     body: "{{ kibana_default_index_options | to_json }}"
     body_format: json
-    status_code: 200, 201
+    status_code: 200, 201, 400
+  register: result
+  failed_when:
+    # If the index already exists, Elasticsearch will respond with a 400 error.
+    - result.status == 400
+    # Format: {"json": {"error": {"type": "index_already_exists_exception"}}}
+    - result.get('json', {}).get('error', {}).get('type') != 'index_already_exists_exception'
   run_once: true
 
 - name: Wait for kibana to register in elasticsearch