The 'Supabase function invocation failed' error means an Edge Function crashed during execution. Common causes include syntax errors in the function code, missing environment variables, import errors for modules, and exceeding time or memory limits. Check the Edge Function logs in the Dashboard, fix the code error, and redeploy with the --debug flag for detailed output.
What does "Supabase function invocation failed" mean?
When a Supabase Edge Function invocation fails, the function either crashed during execution or could not start at all. Edge Functions run on the Deno runtime and have specific error categories: boot errors (503) when the function cannot start, timeout errors (502) when it exceeds wall-clock limits, and resource limit errors (546) when memory is exceeded.
Boot errors are the most common and occur when the function has syntax errors, missing imports, or invalid configuration. The exact error often reads: 'worker boot error: failed to bootstrap runtime: failed to determine entrypoint.' This means the function code could not be loaded and executed.
Edge Functions have strict limits: 60 seconds execution time on free plans (150 seconds on paid), 256 MB memory on free (512 MB on paid). Functions that exceed these limits are terminated with specific shutdown reasons: WallClockTime, Memory, CPUTime, or UncaughtException.
Common causes
Syntax errors or TypeScript compilation errors in
the Edge Function code prevent it from starting
Missing imports for Deno modules
using Node.js-style require() instead of Deno-compatible imports
Environment variables accessed via Deno.env.get() are
not configured in the Supabase Dashboard Secrets
The function exceeds the wall-clock
timeout (60s free, 150s paid) due to long-running operations
Memory usage exceeds the limit
(256 MB free, 512 MB paid) when processing large payloads or data
CORS headers are missing from
the function response, causing browser requests to fail with a CORS error that masks the actual function error
How to fix "Supabase function invocation failed"
Start by checking the Edge Function logs. Go to the Supabase Dashboard > Edge Functions > select your function > Logs tab. The logs show the exact error message, stack trace, and shutdown reason.
For boot errors (function cannot start): check the function code for syntax errors and invalid imports. Edge Functions use Deno, not Node.js. Replace require() with import syntax. Ensure all imported modules are Deno-compatible. Common issue: using npm packages that are not available in Deno — use npm: prefix for npm packages (e.g., import express from 'npm:express').
For environment variable errors: add secrets in the Supabase Dashboard > Edge Functions > Secrets. Variable names must NOT start with SUPABASE_ (reserved). Access them with Deno.env.get('VARIABLE_NAME').
For timeout errors: optimize the function to complete faster. Move long-running operations to background tasks. For paid plans, you get 150 seconds instead of 60.
For CORS errors: every Edge Function must handle CORS manually, including an OPTIONS preflight handler. Every response — including error responses — must include Access-Control-Allow-Origin headers. This is the most common Edge Function CORS issue.
Deploy with the --debug flag for detailed output: supabase functions deploy my-function --debug
// Missing CORS, Node.js imports, no error handlingconst express = require('express'); // Wrong!Deno.serve(async (req) => { const apiKey = Deno.env.get('SUPABASE_API_KEY'); // Reserved! const data = await fetch('https://api.example.com'); return new Response(JSON.stringify(data));});// Proper Deno Edge Function with CORS and error handlingconst corsHeaders = { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': 'authorization, x-client-info, apikey, content-type',};Deno.serve(async (req) => { // Handle CORS preflight if (req.method === 'OPTIONS') { return new Response(null, { headers: corsHeaders }); } try { const apiKey = Deno.env.get('MY_API_KEY'); // Not SUPABASE_ prefix if (!apiKey) throw new Error('MY_API_KEY not configured'); const response = await fetch('https://api.example.com', { headers: { 'Authorization': `Bearer ${apiKey}` } }); const data = await response.json(); return new Response(JSON.stringify(data), { headers: { ...corsHeaders, 'Content-Type': 'application/json' } }); } catch (error) { return new Response(JSON.stringify({ error: error.message }), { status: 500, headers: { ...corsHeaders, 'Content-Type': 'application/json' } }); }});Prevention tips
- Always check Edge Function logs in Dashboard > Edge Functions > Logs for the exact error message and shutdown reason before debugging
- Include CORS headers on every response including error responses — a missing CORS header on an error response masks the actual function error
- Use Deno.env.get() for secrets and ensure variable names do NOT start with SUPABASE_ (reserved prefix)
- Deploy with --debug flag (supabase functions deploy my-function --debug) to get detailed deployment output and catch issues before runtime
Still stuck?
Copy one of these prompts to get a personalized, step-by-step explanation.
My Supabase Edge Function returns 'function invocation failed' with a 503 status. The function is supposed to call an external API. How do I debug this and fix the boot error?
My Supabase Edge Function fails with this error in the logs: [paste logs]. Fix the function code to handle this error properly and include CORS headers.
Frequently asked questions
What causes "Supabase function invocation failed"?
The most common causes are syntax errors preventing the function from starting (boot error), missing environment variables, Node.js-style imports in a Deno environment, exceeding time or memory limits, and missing CORS handlers. Check the Edge Function logs for the specific error.
How do I check Edge Function logs in Supabase?
Go to the Supabase Dashboard > Edge Functions > select your function > Logs tab. The logs show error messages, stack traces, and shutdown reasons. Filter by time range to find the relevant error.
Why does my Edge Function show a CORS error?
Unlike the Supabase REST API which handles CORS automatically, Edge Functions require manual CORS handling. Every response — including error responses — must include Access-Control-Allow-Origin headers. Add an OPTIONS preflight handler to your function.
What are the Edge Function time and memory limits?
Free plan: 60 seconds execution time, 256 MB memory. Paid plan: 150 seconds, 512 MB. Exceeding these limits terminates the function with WallClockTime or Memory shutdown reasons visible in the logs.
Can RapidDev help build reliable Supabase Edge Functions?
Yes. RapidDev can develop Edge Functions with proper error handling, CORS configuration, environment variable management, and performance optimization. This includes setting up the Supabase MCP for AI-assisted development with live schema awareness.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your issue.
Book a free consultation