Skip to content

Edge Function bundle size issues

Last edited: 7/15/2026

The maximum size of a deployed Edge Function depends on how it's bundled:

  • Local bundling (Supabase CLI): up to 20 MB. The CLI bundles your function and its dependencies on your machine before uploading.
  • Server-side bundling (Management API or Dashboard): up to 5 MB. When you deploy without local bundling, bundling runs on the server, which has a lower infrastructure limit.

If your function exceeds the applicable limit, deployment fails with an error such as Function source code exceeds the maximum deployment size.

Check your bundle size#

Use the deno info command to analyze your function's dependencies and total size:

1
deno info /path/to/function/index.ts

Look for the "size" field in the output to see the total bundle size.

How to reduce bundle size#

If your bundle is too large, try these strategies:

Remove unused dependencies#

Review your imports and remove any packages you're not actively using.

Use selective imports#

Instead of importing entire packages, import only the specific modules you need:

1
// Good: Import specific submodules
2
import { specific } from 'npm:package/specific'
3
4
// Avoid: Import entire package
5
import * as everything from 'npm:package'

Split large functions#

Consider breaking large functions into smaller, more focused functions. Each function can handle a specific task, reducing the code needed in any single deployment.

Choose lightweight alternatives#

Research smaller packages that provide the same functionality. Many NPM packages designed for Node.js include unnecessary polyfills that increase bundle size.

Deploying larger functions#

If your function is under 20 MB but exceeds the 5 MB server-side limit, bundle it locally with the Supabase CLI to get the higher limit. Run supabase functions deploy with the --use-docker flag to force local bundling.

Additional resources#