Vercel function max duration 800s: Sume wait budget

Vercel Pro and Enterprise allow 800s, with 1800s in beta. Sume still caps a blocking wait at 30s, so video jobs need a poll loop with its own deadline.

4 min readSume
All posts

The maximum Vercel Function duration is 800 seconds on Pro and Enterprise, with an extended 1800 seconds in beta and 300 seconds on Hobby. That is more room than before, but a Sume request still blocks for at most 30 seconds, so a video job needs a poll loop or a webhook rather than one long request.

Vercel numbers are from its Functions limitations page (updated 2026-08-24), read 2026-09-30. Sume numbers are from Jobs and results.

What are the Vercel limits?

Per the page: Hobby is 300s default and maximum; Pro and Enterprise are 300s default, 800s maximum, and 1800s extended maximum (beta). The 800s maximum is generally available. Secure Compute and Static IPs do not support durations above 800 seconds during the beta. If a function does not finish in time it returns a 504 FUNCTION_INVOCATION_TIMEOUT.

How does that compare with Sume's wait?

Different things are being limited. wait_timeout_seconds is clamped to 0..30 and bounds how long the HTTP request blocks, not how long the job takes. Image jobs often finish inside it; video, avatar-video and face-swap jobs routinely do not. The overall deadline is client-side, and the docs call 20 minutes reasonable for video.

Limits side by side, from the Vercel page and Sume docs, read 2026-09-30
LimitValueWhat it bounds
Vercel Hobby300sOne function invocation
Vercel Pro and Enterprise800s (1800s beta)One function invocation
Sume wait_timeout_seconds0 to 30sOne blocking HTTP request
Sume job deadlineSet by your clientYour own poll loop

Should I just raise maxDuration and wait?

It does not remove the 30-second clamp, and a client-side timeout does not cancel the job; it keeps running and billing. Submit with mode: "async", save the job id, and finish the function. Then poll status_url from a later invocation, or receive the webhook. The docs say delivery is an optimization, never the only recovery path, so keep polling available. See Vercel function timeout for AI video in Next.js.

What does a 504 mean for my job?

Your function stopped; the Sume job did not. Store the job id before you wait, so a 504 leaves you able to read the result later instead of resubmitting a paid request.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume