Pairing failures between Splunk ES and Splunk SOAR prevent the execution of playbooks and automation actions. Common symptoms include:
Always confirm the deployment type first: (Cloud-to-Cloud, Hybrid, or On-Prem to On-Prem).
Ensure Splunk Search Heads and SOAR are not overburdened when performing the pairing between ES and SOAR. Overload can cause pairing to fail or behave unreliably.
Review the pairing log for specific error codes or timeout messages using the following SPL:
index=_internal source=*mc_es_soar_pairing.log level=ERROR
Verify the status of the required modular inputs on the ES Search Head.
Related Errors:
In ES v8.2+, do not disable modular inputs during a pairing reset. Unlike previous versions, modular inputs are decoupled from the pairing state and will not automatically enable upon re-pairing. The following modular inputs are required to be in an enabled state.
create_ingest_soar_tokens = "Create and Ingest Splunk tokens required by SOAR as credentials"
create_soar_jwk_key_pair = "Create and Store SOAR JWK key pair"
Modular Inputs Status (SPL Search from the ES SH):
| rest splunk_server=local /services/data/inputs/all
| search eai:acl.app="missioncontrol" eai:type="create*"
| table title, eai:type, disabled, eai:acl.app
Confirm network connectivity between the instances on ports 443 and 8089.
Related Errors:
SOAR could not connect to ES: ConnectTimeoutError Port 8089
Cloud:
Confirm the Splunk SOAR IP address is already included in the Splunk Cloud Platform IP allow list in each of these sections:
On-Prem/Hybrid:
Splunk SOAR (On-Prem) defaults to TCP 8443 for the web interface and REST API.
Verify that any Firewall and Load Balancer endpoint IPs are permitted on ports 8443 and 8089 to avoid connectivity blocks.
Confirm the certificate type:
Cloud-to-Cloud deployments include compatible certificates by default.
Hybrid pairing requires a valid Public CA SSL certificate.
For On-Prem, verify the existence and validity of the SOAR certificate in the soar_cert_bundle.pem file located at:
$SPLUNK_HOME/etc/apps/missioncontrol/certificates/soar_cert_bundle.pem
Check SOAR logs at /var/log/phantom/wsgi.log for SSL handshake failures or unauthorized access attempts from the Search Head IP address.
1) Enable Required Modular Inputs:
Navigate to Settings > Data Inputs on the ES Search Head.
Data inputs » Create and Ingest Splunk tokens required by SOAR as credentials
Data inputs » Create and Store SOAR JWK key pair
Locate create_ingest_soar_tokens and create_soar_jwk_key_pair.
Ensure all are set to Enabled. This prevents pairing from dropping after the initial token expiration.
The create_ingest_soar_tokens input handles the Authentication Handshake and session management.
Function: It is responsible for the actual exchange of credentials to obtain the authentication tokens (JWTs) that allow the ES Search Head to communicate with the SOAR API. It manages the "pairing" state and ensures that the ES user has a valid, active session with SOAR. This is the "active" part of the pairing. It performs the background API calls to SOAR to verify that the pairing is still valid. If this input fails, the integration cannot refresh its session, leading to "Pairing request to SOAR is unauthorized" errors.
The create_soar_jwk_key_pair input handles the Cryptographic Identity of the Splunk ES Search Head.
Function: It generates a public/private key pair (JSON Web Key - JWK) used to sign the JWTs (JSON Web Tokens) that Splunk ES sends to SOAR. When SOAR receives a request from ES, it uses the public key generated by this input to verify that the request is authentic. If this input is broken or the key is stale, SOAR will reject all requests as "Unauthorized" because it cannot verify the signature.
As a troubleshooting step for role mappings or authentication tokens failing to refresh, you can force a background configuration reload by disabling and re-enabling the "Create and Ingest Splunk tokens required by SOAR as credentials" and/or the "Create and Store SOAR JWK key pair" data inputs as needed.
How to Refresh Pairing Inputs
2) Update Allowlists and Firewalls:
0.0.0.0/0). Conversely, confirm that the Port 443 allowlist on the Splunk Search Head(s) is either open to all traffic or explicitly contains the SOAR IP address/CIDR range./servicesNS/-/missioncontrol/v1/keys.
3) Reset Stuck Pairing State:
The Splunk ES-SOAR integration relies on a synchronized trust relationship and token exchange between the two platforms. Due to the sensitive nature of these security configurations, the pairing state can occasionally become inconsistent due to configuration drift, role mapping updates, or token synchronization issues. A manual reset maybe needed if the UI is "spinning", the "Pairing in Progress" status is persistent, or the Unpairing button is unresponsive.
Related Errors:
If the role-mapping section in the ES Pairing UI appears blank, even when standard roles with the soar_user capability are verified to exist, a manual unpair/re-pairing maybe required.
a. Your SOAR instance is already paired with an ES system.
Cloud/Hybrid/On-Prem SOAR:
Execute the following command against the SOAR instance to clear the pairing state:
(Ensure the false flags are used in the unpairing CURL command to prevent accidental deletion of Splunk users.)
curl --location 'https://<soar_stack>/rest/enterprise_security/unpairing' \
--header 'Content-Type: application/json' \
--data '{"delete_all_splunk_users": false,"delete_non_converted_splunk_users":false}' \
-u soar_local_admin
b. Clear the SOAR pairing state first and re-attempt pairing; if necessary proceed with the configuration cleanup on the ES SH.
On-Prem ES:
On the Enterprise Security v8.2+ Search Head, access the /apps/missioncontrol/local/essoar.conf file, clear or reset the following attributes, and then reload/restart Splunk:
[pairing_state]
pairing_attempt_id =
pairing_id =
pairing_status = Unpaired
[pairing]
pairing_completed_time =
soar_url =
Hybrid/Cloud ES:
4) SSL Handshake and Certificate Issues:
On-Prem:
Ensure the environment is configured to use TLS 1.2 or higher.
[$PHANTOM_HOME]/etc/ssl/certs/httpd_cert.crt /etc/haproxy/certificates)$SPLUNK_HOME/etc/apps/missioncontrol/certificates/soar_cert_bundle.pem.httpd_cert.crt is manually copied to the ES Search Head again.Hybrid/Cloud:
For Hybrid pairing (SOAR On-Prem to ES Cloud), the On-Prem SOAR instance must utilize a valid SSL certificate signed by a Certificate Authority (CA). Self-signed SSL certs are not supported in Splunk Cloud Hybrid deployments.
set_real_ip_from) and Django security settings (settings_local.py) to ensure proper origin trust and header handling.
5) Role Mapping and Role Visibility:
· To see the pairing page, you should have the sc_admin role (for Splunk Cloud) or the admin role (for Splunk On-Prem).
· Regardless of deployment type or role, the user performing the pairing must have a specific set of three capabilities: admin_all_objects, es_soar_settings_admin, and soar_user.
· The pairing interface does not display every role existing on the ES SH. It only populates the dropdown with roles that possess the soar_user capability. If roles are missing from the mapping dropdown, ensure the relevant Splunk roles possess the soar_user capability.
· For SOAR, use soar_local_admin to GET /rest/idps/splunk/current/role-mapping. If this endpoint returns an empty role mapping, this is evidence that the role mapping was cleared.
Knowledge Articles
Splunk Docs
| Revision | Publish Date | Comments |
|---|---|---|
1.0 |
01-Oct-2026
|
Initial Release |