{"record":{"id":"566fe22f14294f86","repo":"pulumi/pulumi","slug":"redelivering-webhook-event-w","errorCode":null,"errorMessage":"redelivering webhook event: %w","messagePattern":"redelivering webhook event: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/cmd/pulumi/stack/stack_webhook_delivery_redeliver.go","lineNumber":125,"sourceCode":"\t\tcmdBackend.DefaultLoginManager, stackFlag)\n}\n\nfunc runRedeliver(\n\tctx context.Context,\n\tw io.Writer,\n\tfactory stackWebhookRedeliverClientFactory,\n\tstackFlag string,\n\twebhookName, eventID string,\n\trender redeliverRenderFunc,\n) error {\n\tc, stackID, err := factory(ctx, stackFlag)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdelivery, err := c.RedeliverStackWebhookEvent(ctx, stackID, webhookName, eventID)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"redelivering webhook event: %w\", err)\n\t}\n\n\treturn render(w, delivery)\n}\n\ntype redeliverRenderFunc func(w io.Writer, d apitype.WebhookDelivery) error\n\nfunc renderRedeliverJSON(w io.Writer, d apitype.WebhookDelivery) error {\n\tenc := json.NewEncoder(w)\n\tenc.SetEscapeHTML(false)\n\tenc.SetIndent(\"\", \"  \")\n\treturn enc.Encode(d)\n}\n\nfunc renderRedeliverText(w io.Writer, d apitype.WebhookDelivery) error {\n\tts := time.Unix(d.Timestamp, 0).UTC().Format(time.RFC3339)\n\n\tfmt.Fprintf(w, \"ID:                %s\\n\", d.ID)","sourceCodeStart":107,"sourceCodeEnd":143,"githubUrl":"https://github.com/pulumi/pulumi/blob/793f7b2e160db4321fb7fb6b0607461e01cb251e/pkg/cmd/pulumi/stack/stack_webhook_delivery_redeliver.go#L107-L143","documentation":"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.","triggerScenarios":"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.","commonSituations":"Replaying an event ID copied from old delivery listings after retention window expiry; redelivering against the wrong stack or org; CI token expired.","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"],"exampleFix":"// before\npulumi stack webhook delivery redeliver deploy-hook 0123  # stale ID\n// after\npulumi stack webhook delivery ls deploy-hook   # get current event ID\npulumi stack webhook delivery redeliver deploy-hook <current-event-id>","handlingStrategy":"try-catch","validationCode":"pulumi stack webhook delivery ls \"$WEBHOOK\" --stack \"$STACK\" | grep -Fq \"$EVENT_ID\" || { echo \"event $EVENT_ID not listed\" >&2; exit 1; }","typeGuard":null,"tryCatchPattern":"err := run(\"pulumi\", \"stack\", \"webhook\", \"delivery\", \"redeliver\", webhook, eventID)\nif err != nil && strings.Contains(err.Error(), \"redelivering webhook event:\") {\n    // refresh event ID from delivery ls, or retry on transient causes\n}","preventionTips":["Always take event IDs from a fresh `delivery ls` output","Confirm the webhook exists before redelivering","Retry transient failures with backoff in automation"],"tags":["cli","webhooks","network"],"backgroundTag":"api-request-failed","analyzedSha":"793f7b2e160db4321fb7fb6b0607461e01cb251e","analyzedAt":"2026-08-31T09:36:43.099Z","schemaVersion":2},"datasetVersion":"2026-09-01T08:17:40.651Z"}