Skip to main content
context.waitForEvent pauses workflow execution until a given event occurs or a timeout is reached. Default timeout value is 7 days.

Arguments

stepId
string
required
A unique identifier for the step.
eventId
string
required
A unique identifier for the event to wait on.
timeout
number|string
The maximum time to wait before continuing execution.
  • String format: Human‑readable duration (e.g., "10s", "2h", "1d").
  • Number format: Duration in seconds (e.g., 60, 3600).
Defaults to 7d (7 days).

Response

eventData
string|object
The data passed in when the event is triggered via notify().
timeout
boolean
true if execution resumed because the timeout elapsed, false if resumed due to the event being received.

Usage

import { serve } from "@upstash/workflow/nextjs";

export const { POST } = serve<{ topic: string }>(async (context) => {
  const request = context.requestPayload;

  const {
    eventData,
    timeout,
  } = await context.waitForEvent("wait for some event", "my-event-id", {
    timeout: "1000s", // 1000 second timeout
  });
});