Azure Function Receives Empty Request Body from Atlassian JIRA Webhook

I have created a webhook in JIRA to send notifications for newly generated issues to my Azure Function app. When I tested the webhook using a request testing tool, the JSON payload showed up correctly along with the expected headers.

Expected Headers from test service:
host: test-service.example.com
content-length: 42891
x-atlassian-webhook-identifier: 9876543210123456789
x-atlassian-webhook-flow: Primary
accept: */*
content-type: application/json; charset=UTF-8
user-agent: Atlassian Webhook HTTP Client

However, when the webhook sends the payload directly to my Azure Function, the request body is empty, and the headers are different:

Actual Headers received:
{
  "was-default-hostname": "*my-app-url*",
  "client-ip": "xx.x.xx.xx:xxxxx",
  "x-forwarded-proto": "https",
  "max-forwards": "9",
  "x-original-url": "/api/my_handler?code=*auth_code*",
  "user-agent": "Atlassian Webhook HTTP Client",
  "x-atlassian-webhook-identifier": "123456789012345678",
  "host": "*my-app-url*",
  "accept": "*/*",
  "x-atlassian-webhook-flow": "Primary",
  "content-length": "0"
}

I also confirmed that a POST request sent using Postman to the same Azure Function works completely fine, with the JSON body processed and headers appearing as they should.

Can anyone suggest why the Azure Function receives an empty body from JIRA’s webhook while it works well with other methods?

check if ur azzure function is set up to handle all post reqs correctly. sometimes extra query params in the webhook url from jira can mess things up. might wanna double check that!

I had the exact same problem - JIRA webhooks sending empty payloads to my Azure Function. Turned out to be the auth method in the webhook URL. When you put the function key as a query parameter, JIRA sometimes can’t process the request right. Skip the function key in the URL and try host-level auth instead, or just set the function to anonymous access for testing. Check your Azure Function logs too - they’ll show request processing errors that explain why the body’s getting stripped. Also make sure your function binding config matches JIRA’s content type. Since your content-length is showing 0, the payload’s getting lost in the request pipeline, not just failing to parse.

This sounds like a JIRA webhook config issue, not your Azure Function. I hit something similar - JIRA was sending to HTTP but my function only accepted HTTPS. The webhook seemed to reach the right URL, but the payload got lost during redirects. Check your JIRA webhook settings and make sure the protocol matches exactly what your function expects. Also try enabling request logging on your function to catch any 3xx redirects that might strip the POST body. Since content-length shows 0, the request’s getting through but the body isn’t making it down the pipeline.

This topic was automatically closed 4 days after the last reply. New replies are no longer allowed.