juspay/hyperswitch · error · Error

External Vault Connector Create Call Failed ${response.body.

Error message

External Vault Connector Create Call Failed ${response.body.error.message}

What it means

Thrown by the externalVaultConnectorCreateCallTest command (cypress-tests/cypress/support/commands.js:1785) when creating a vault_processor connector via POST /account/{merchantId}/connectors returns non-200 while success was expected. On success it stores the new merchant_connector_id under `${mcaPrefix}Id` (default 'vaultConnector').

Source

Thrown at cypress-tests/cypress/support/commands.js:1785

              if (response.status === 200) {
                expect(response.body.connector_name).to.equal(
                  createConnectorBody.connector_name
                );
                expect(response.body.connector_type).to.equal(
                  "vault_processor"
                );
                expect(response.body).to.have.property("merchant_connector_id")
                  .and.to.not.be.empty;
                globalState.set(
                  `${mcaPrefix}Id`,
                  response.body.merchant_connector_id
                );
              } else {
                cy.task(
                  "cli_log",
                  "response status -> " + JSON.stringify(response.status)
                );
                throw new Error(
                  `External Vault Connector Create Call Failed ${response.body.error.message}`
                );
              }
            } else {
              expect(response.status).to.equal(expectedStatus);
            }
          });
        });
      }
    );
  }
);

Cypress.Commands.add(
  "createAuthenticationProcessorConnectorTest",
  (
    createConnectorBody,
    globalState,

View on GitHub (pinned to 9b8b89dc37)

Solutions

  1. Read the cli_log'd status and server message — 400 usually means body/creds shape, 401 api-key, 500 backend or vault unreachable
  2. Verify the creds.json entry for createConnectorBody.connector_name is present and current
  3. Confirm the target environment supports external vault / vault_processor connectors
  4. Check the profile under `${profilePrefix}Id` exists
  5. Delete duplicates left by partial prior runs
Defensive patterns

Strategy: try-catch

Validate before calling

cy.readFile(globalState.get('connectorAuthFilePath')).then((json) => {
  const { authDetails } = getValueByKey(JSON.stringify(json), createConnectorBody.connector_name);
  if (!authDetails) {
    throw new Error(`No vault creds for ${createConnectorBody.connector_name} — add them or skip vault specs`);
  }
});

Try / catch

cy.on('fail', (err) => {
  if (err.message.includes('External Vault Connector Create Call Failed')) {
    throw new Error(`Vault connector setup failed — check vault creds/environment support: ${err.message}`);
  }
  throw err;
});

Prevention

When it happens

Trigger: Vault-processor credentials in creds.json invalid (wrong external-vault API keys); the named connector not supported as connector_type='vault_processor'; missing or incompatible fields in createConnectorBody; profile_id mismatch; a duplicate vault connector already on the profile.

Common situations: Running vault-related specs without external-vault service credentials configured for the environment; the vault_processor connector type only existing in newer API versions; environment-specific creds files diverging.

Related errors


AI-assisted analysis of juspay/hyperswitch@9b8b89dc37 (2026-08-16). Data as JSON: /api/errors/ed6b64ae69bf6133. Report an issue: GitHub.