Skip to content

[Virtual Event] Spacelift Product Roundup: the quarter's top Spacelift releases in one session.

Save your seat ➡️

Event Limits

Every flow has two limits on how many events it can process: a monthly limit you can adjust, and a fixed hourly rate limit. They protect you from a runaway flow, such as a schedule firing every few seconds or a feedback loop between blocks, generating millions of events before anyone notices.

What counts as an event»

An event is counted every time a block in the flow emits on one of its outputs. That includes trigger events such as incoming HTTP requests and schedule ticks, the outputs of core and app blocks, and events you trigger manually while testing. A single invocation usually produces several events, one per block along the path the event takes.

Usage is counted per flow. Monthly usage resets at the start of each calendar month.

Events are the unit of both limits. Invocations are not limited, but every event an invocation produces counts, so a large flow uses up its limits faster per invocation than a small one.

Default limits»

Limit Default
Events per flow per month 50,000
Maximum a flow's limit can be raised to 1,000,000
Events per flow per hour (fixed) 50,000

Anyone with the Editor role can raise a single flow's monthly limit up to the organization ceiling. To go beyond the ceiling, contact Spacelift support.

Viewing usage»

Open a flow, click its name in the header, and choose Monthly event limits.

Flow context menu with the Monthly event limits item

The popover shows how many events the flow has used this month against its limit, and when the counter resets.

Monthly event limits popover showing the usage meter, the reset date, and the limit field

The flow header shows a Limit almost reached badge once usage passes 80% of the limit, and Limit reached once it hits the limit. The same badge appears in the project's flow list.

Project flow list with a Limit reached badge on a flow

Changing a flow's limit»

Editors and Admins can set a new limit from the same popover, anywhere between 0 and the organization ceiling. Setting it to 0 stops the flow from processing events until you raise it again. A flow with a custom limit shows a Reset button that returns it to the default.

The limit is stored alongside the flow rather than in its definition, so it is not included in exports and is not managed through flowctl or the Terraform provider. A duplicated flow starts with the default limit.

What happens when the limit is reached»

Once a flow reaches its limit, its blocks stop running for the rest of the month. Events arriving at a block's input are marked as failed with the message flow monthly event limit exceeded, and the invocation shows as failed. The flow itself stays enabled, and incoming trigger events such as HTTP requests are still recorded.

Monthly event limits popover with the limit reached banner and a Limit reached badge in the flow header

Failed events can be replayed

Nothing is lost when a flow hits its limit. Once you raise the limit or the month rolls over, new events are processed again. Events that failed while the limit was reached are not retried on their own, but you can retry them manually from the block's input events list.

Hourly rate limit»

Independently of the monthly limit, each flow may create at most 50,000 events per hour. This limit is fixed and cannot be changed per flow.

When the limit is hit, blocks cannot emit events until the hour resets. Their work is retried automatically once it does, and the block logs a flow event rate limit exceeded error that includes the reset time. Debug events sent manually while the limit is in effect are rejected with the same error.