Troubleshooting
Problem
Symptom
The sync association may show a status similar to:
INTERNAL_VAULT_ERRORThe Vault documentation defines INTERNAL_VAULT_ERROR as a sync status indicating that the operation failed due to an internal issue in Vault, reviewing the sync association status can help when troubleshooting failed synchronization operations.
Example Error:
failed to create store: unable to initialize store of type "azure-kv":
unauthorized request: failed to validate the client credentials with a no-op unsync operation:
dial tcp 10.x.x.x:443: prohibited IP address:
10.x.x.x is not a permitted destinationCause
Vault Secrets Sync includes endpoint security controls designed to protect against server-side request forgery (SSRF). By default, Vault restricts the IP addresses and ports that sync clients are allowed to connect to. The documentation specifies that special-purpose IPv4 and IPv6 addresses are blocked by default, and only ports 80 and 443 are allowed unless explicitly customized.
When Vault attempts to initialize or validate the Secrets Sync destination, the SSRF-safe sync client may reject the resolved private IP address. This can prevent the destination from initializing successfully and cause existing associations to remain in a failed sync state.
Although Vault provides destination-level configuration options such as allowed_ipv4_addresses, allowed_ipv6_addresses, allowed_ports, and disable_strict_networking, environments may still encounter this issue when using private endpoints if the allowlist does not permit the resolved address. This behavior is not expected. A bug report is currently open, with no defined timeline for resolution. These configuration fields are documented in the Secrets Sync destination settings for AWS, Azure, and GCP.
Environment
Vault Secrets Sync enables KV v2 secrets managed by Vault to be synchronized to external destinations such as AWS Secrets Manager, Azure Key Vault, and GCP Secret Manager. Vault remains the system of record, while the external destination serves as the cloud-native location where applications consume the secret.
Prerequisites
Before proceeding, ensure the following:
- Vault Enterprise or HCP Vault Dedicated with Secrets Sync enabled
- A configured Secrets Sync destination (for example: aws-sm, azure-kv, or gcp-sm)
- Access to read destination and association status under sys/sync
- Access to update the Secrets Sync destination configuration
- Confirmation that the cloud provider endpoint resolves to a private, internal, or otherwise restricted IP address
- (Recommended) A non-production environment to validate the workaround before applying it in production
Diagnosing The Problem
Confirming the Issue
Read the associations for the affected destination:
vault read sys/sync/destinations/<destination_type>/<destination_name>/associationsExample:
vault read sys/sync/destinations/aws-sm/prod-secrets/associationsLook for associations reporting:
sync_status INTERNAL_VAULT_ERRORYou may also see Vault operational logs indicating that the sync client was denied from connecting to a private IP address, for example:
prohibited IP address
not a permitted destination
denied by: 10.0.0.0/8Resolving The Problem
Overview of Solution
At this time, the available workaround is to disable strict networking for the affected Secrets Sync destination by setting:
disable_strict_networking=trueVault documents disable_strict_networking as disabling both IP address and port restrictions used by the SSRF-safe sync clients. It also notes that strict networking may need to be disabled in environments where IP addresses or ports are not static.
Example payload pattern:
{
"disable_strict_networking": true
}Because update requirements vary by destination type, ensure that all required fields for that destination are included in the update request. Take care to avoid exposing cloud credentials in shell history or logs.
Destination Update Endpoints
Azure Key Vault:
sys/sync/destinations/azure-kv/<destination_name>AWS Secrets Manager:
sys/sync/destinations/aws-sm/<destination_name>GCP Secret Manager:
sys/sync/destinations/gcp-sm/<destination_name>
Retry the Association
After updating the destination, retry or refresh the affected association:
vault write sys/sync/destinations/<destination_type>/<destination_name>/associations/set \
mount="<kv_mount>" \
secret_name="<secret_name>"The association set endpoint links a KV v2 secret to the destination and can also be used to retry a failed sync operation after the underlying issue is resolved.
Outcome
After applying disable_strict_networking=true, Vault should be able to connect to cloud provider endpoints that resolve to private IP address space.
Verify the result by attempting to sync your secrets again.
If the issue persists with INTERNAL_VAULT_ERROR, review Vault operational logs for the latest sync attempt and confirm whether the failure is due to another issue, such as:
- Invalid cloud credentials
- Insufficient provider permissions
- Unavailable external service
Current Workarounds
These are currently the only two practical paths forward:
The following are currently the only practical options:
- Use
disable_strict_networking=truefor Secrets Sync destinations that rely on private endpoints or private network routing - Wait for a future Vault release that resolves the known issue with
allowed_ipv4_addressesnot permitting expected private endpoint addresses
Additional Information
- Vault Secrets Sync overview: Explains supported destinations, one-way sync behavior, associations, and sync statuses
- Secrets Sync endpoint security: Describes SSRF protection, default IP and port restrictions, and when strict networking may need to be customized or disabled
- Secrets Sync API: documents destination-level settings such as
disable_strict_networking,allowed_ipv4_addresses,allowed_ipv6_addresses, andallowed_ports.
Document Location
Worldwide
Product Synonym
HashiCorp Vault; Vault Self-Managed; Vault
Was this topic helpful?
Document Information
Modified date:
03 June 2026
UID
ibm17271996