Skip to content
Latchkey

Spinnaker Webhook stage failed in CI

A Webhook stage calls an external endpoint and expects a success status (and optionally a status URL to poll). It fails when the endpoint returns a non-2xx code, or when the poll condition never reaches its success state.

What this error means

A Webhook stage goes TERMINAL with a status code such as 400/500 from the target, or "The webhook request failed", or the status poll never satisfies the success/cancel condition.

Spinnaker
Exception ( Webhook )
Received status code 500 from webhook https://deploy-hook.example.com/notify
Webhook stage failed.

Common causes

The target endpoint returned a non-success status

The external service the webhook calls returned 4xx/5xx, so Spinnaker marks the stage failed.

The status check condition never resolved

For polled webhooks, the status JSON path or success/cancel value did not match, so the stage times out.

How to fix it

Inspect the webhook response

  1. Read the stage details for the status code and response body.
  2. Fix the target endpoint or the request payload/headers.
  3. For polled webhooks, verify the status JSON path and expected values.

Correct the status polling config

Align the statusUrlResolution, success, and cancel conditions with what the target actually returns so the poll can complete.

Spinnaker webhook stage
# Webhook stage -> Status Check
# Success statuses: SUCCEEDED   Canceled statuses: CANCELED
# Status JSON path: $.status

How to prevent it

  • Confirm target endpoints are reachable and return 2xx on success.
  • Match the status JSON path to the target response shape.
  • Send required auth headers to webhook targets from secrets.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →