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.

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

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.

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.

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.