POST https://app.qawolf.com/api/webhooks/deploy_success
This endpoint feeds legacy triggers. A workspace that has migrated reports deploys through deployment events or deployment.reportStatus, which this endpoint does not reach.
Request
Request headers
Request body
All fields are optional.Commonly used
Advanced
Response
deployment_id and environment identify the deployment QA Wolf recorded. skipped_deployment is present instead of triggering runs when QA Wolf skipped the deployment, carrying a reason and a message.
results is an array of matched triggers. Every entry carries environment_id, and a skipped entry carries skip_reason. Each entry carries an outcome of created, skipped, or failed, alongside created_suite_id if QA Wolf created a run, duplicate_suite_id if a run for this deployment already exists, or failure_code and failure_message if QA Wolf could not create the run. Branch on failure_code, such as billing-prevented or environment-not-ready, and display failure_message. Treat failure_code as an open set, since QA Wolf adds new codes over time.
Success bodies use snake_case and error bodies use camelCase: a 402, 429 or 503 returns failureCode and failureMessage, not failure_code and failure_message. Handle both spellings.
warning is present when the request needed a workspace and did not name one, in which case it reports the workspace QA Wolf used. It never changes the outcome. @qawolf/ci-sdk prints it for you.
created_suite_id even when the deployment duplicates one QA Wolf is already handling. Deduplication is settled after this response is sent, so the synchronous response does not report it. To find out whether a duplicate superseded your run, poll CI greenlight and compare relevantRunId with rootRunId (see Superseding logic).
You see
duplicate_suite_id only when retrying deploy_success for the same sha after deduplication has already settled. On the first delivery, QA Wolf never reports a matched trigger as a duplicate.Response codes
Plus the common response codes.
A 200 response does not guarantee a run was created. Inspect the response body to confirm.