Getting Empty event Object ({}) for My Netlify Function POSTs on Deploy (Works Locally)

I am experiencing a critical and persistent issue with one of my Netlify Functions. When deployed, it consistently receives an entirely empty {} object for the event parameter when invoked via a POST request. This causes the function to fail immediately, as event.httpMethod (and all other event properties) are undefined.

My Netlify Site Name: inquisitive-quokka-a0a53c.netlify.app

Problem Description: When my function is deployed to Netlify and invoked with a POST request, console.log(event) inside the function consistently outputs {}.

Expected Behavior: The event object should be populated with properties like httpMethod, path, headers, and body (which I then parse), as it does when running locally.

Current Behavior (Deployed): When triggered, console.log(event) within the function outputs:

{}

This results in an error when my function attempts to access event.httpMethod (e.g., event.httpMethod.toUpperCase()), as it’s calling a method on undefined.

Working Locally: Crucially, this function works perfectly when run locally using netlify dev. The event object is fully populated, including the httpMethod and body with the sent payload, as expected.

Function Code (my-function.js):

`JavaScript// Ensure you have dotenv installed if you’re using it, or remove if not relevant
// require(‘dotenv’).config();

exports.handler = async (event, context) => {
console.log(“Received event:”, event); // This logs {} on deploy

// This check fails because event.httpMethod is undefined when deployed
if (event.httpMethod && event.httpMethod.toUpperCase() !== 'POST') {
    console.log("Method not allowed:", event.httpMethod);
    return {
        statusCode: 405,
        body: JSON.stringify({ message: 'Method Not Allowed', receivedMethod: event.httpMethod }),
        headers: { 'Allow': 'POST' }
    };
}

// If event is {}, event.body will also be undefined
const requestBody = event.body ? JSON.parse(event.body) : {};
console.log("Request body:", requestBody);

// --- Your actual function logic would go here ---
// Example: Process requestBody and send a response
if (!requestBody || Object.keys(requestBody).length === 0) {
    return {
        statusCode: 400,
        body: JSON.stringify({ message: 'Request body is empty or malformed' }),
    };
}

return {
    statusCode: 200,
    body: JSON.stringify({ message: 'Function executed successfully!', data: requestBody }),
};

};`

How I’m invoking the function (example curl command):

Bashcurl -X POST \ https://inquisitive-quokka-a0a53c.netlify.app/.netlify/functions/my-function \ -H 'Content-Type: application/json' \ -d '{ "key": "value", "message": "Hello from curl" }'

My netlify.toml (relevant section):

`Ini, TOML[build]
functions = “functions” # Or wherever your compiled functions are
publish = “public” # Or your publish directory

[dev]
functions = “functions”
publish = “public”
port = 8888`

(My function my-function.js is located within the functions directory.)


Addressing Forum Guide Specifics:

  • DNS issues? This is not a DNS-related issue. The function endpoint is successfully reached, but the event object within the function is empty upon invocation.
  • Build problems? This does not appear to be a build-time issue. The function builds and deploys successfully according to the logs. The problem manifests at runtime during function invocation. I can provide the full build log if it is deemed necessary for diagnosis, but it currently shows no errors related to the function’s compilation or deployment.
  • Did you try Ask Netlify? Yes, I have thoroughly researched this issue, including extensive searches of the Netlify community forums and documentation. My specific problem, where the entire event object is empty ({}) on deploy for POST requests, does not seem to have a direct solution in existing resources or via AI-assisted search.

What I’ve already investigated/ruled out: I’ve reviewed several similar forum posts and common troubleshooting steps, but none address my precise issue where the entire event object is empty on deployment:

  • It’s not simply event.body being empty due to malformed JSON in the payload, as the whole event object is missing all properties, including httpMethod and headers.
  • It’s not an httpMethod misidentification where other event properties are present (e.g., seeing POST as GET while headers are fine).
  • It’s not an issue with my function’s return callback usage, as the problem occurs before any logic to handle the event can execute.
  • The issue is consistently present on deploy, ruling out netlify dev-specific bugs that resolve upon deployment.

Any guidance or assistance in diagnosing why my deployed Netlify Function is receiving an empty event object for POST requests would be greatly appreciated.

Thank you for your time and help!

Looks like this is resolved? I’m not getting any such issues on your website.