pulumi/pulumi · error
redelivering webhook event: %w
Error message
redelivering webhook event: %w
What it means
Wraps a failure from RedeliverStackWebhookEvent when `pulumi stack webhook delivery redeliver` asks the backend to re-send a specific webhook delivery event. The %w wrap preserves the underlying API error (unknown event ID, webhook gone, auth/network failure) while attributing it to the redelivery operation.
Source
Thrown at pkg/cmd/pulumi/stack/stack_webhook_delivery_redeliver.go:125
cmdBackend.DefaultLoginManager, stackFlag)
}
func runRedeliver(
ctx context.Context,
w io.Writer,
factory stackWebhookRedeliverClientFactory,
stackFlag string,
webhookName, eventID string,
render redeliverRenderFunc,
) error {
c, stackID, err := factory(ctx, stackFlag)
if err != nil {
return err
}
delivery, err := c.RedeliverStackWebhookEvent(ctx, stackID, webhookName, eventID)
if err != nil {
return fmt.Errorf("redelivering webhook event: %w", err)
}
return render(w, delivery)
}
type redeliverRenderFunc func(w io.Writer, d apitype.WebhookDelivery) error
func renderRedeliverJSON(w io.Writer, d apitype.WebhookDelivery) error {
enc := json.NewEncoder(w)
enc.SetEscapeHTML(false)
enc.SetIndent("", " ")
return enc.Encode(d)
}
func renderRedeliverText(w io.Writer, d apitype.WebhookDelivery) error {
ts := time.Unix(d.Timestamp, 0).UTC().Format(time.RFC3339)
fmt.Fprintf(w, "ID: %s\n", d.ID)View on GitHub (pinned to 793f7b2e16)
Solutions
- Get a fresh event ID from `pulumi stack webhook delivery ls`
- Confirm the webhook still exists and the correct stack is targeted
- Re-authenticate if the wrapped error indicates expired credentials
- Retry on transient network/backend errors
Example fix
// before pulumi stack webhook delivery redeliver deploy-hook 0123 # stale ID // after pulumi stack webhook delivery ls deploy-hook # get current event ID pulumi stack webhook delivery redeliver deploy-hook <current-event-id>
Defensive patterns
Strategy: try-catch
Validate before calling
pulumi stack webhook delivery ls "$WEBHOOK" --stack "$STACK" | grep -Fq "$EVENT_ID" || { echo "event $EVENT_ID not listed" >&2; exit 1; } Try / catch
err := run("pulumi", "stack", "webhook", "delivery", "redeliver", webhook, eventID)
if err != nil && strings.Contains(err.Error(), "redelivering webhook event:") {
// refresh event ID from delivery ls, or retry on transient causes
} Prevention
- Always take event IDs from a fresh `delivery ls` output
- Confirm the webhook exists before redelivering
- Retry transient failures with backoff in automation
When it happens
Trigger: Running `pulumi stack webhook delivery redeliver <webhook> <event-id>` where the backend rejects it: event ID not found (already purged or typo), webhook deleted, or a transient API/auth failure.
Common situations: Replaying an event ID copied from old delivery listings after retention window expiry; redelivering against the wrong stack or org; CI token expired.
Understand the failure class
Background: "API request failed": what wrapped HTTP errors from external APIs mean and how to find the real cause — this error's family across 29 libraries.
Related errors
- listing webhook deliveries: %w
- listing webhook deliveries: %w
- getting environment draft definition: %w
- getting environment definition: %w
- resolving default org: %w
AI-assisted analysis of pulumi/pulumi@793f7b2e16 (2026-08-31).
Data as JSON: /api/errors/566fe22f14294f86.
Report an issue: GitHub.