metricsign
Start free
Medium severitydata formatMicrosoft Fabric

Power BI Refresh Error:
Fabric Pipeline Error 3603

What does this error mean?

The Azure Function called by the Fabric pipeline returned a response body that cannot be parsed as a valid JSON object (JObject). This prevents the pipeline from processing the function's output.

Common causes

  • 1The Azure Function returned a plain string, array, null, or primitive value instead of a JSON object with key-value pairs
  • 2The function returned an error page, HTML response, or empty body due to an unhandled exception
  • 3The function's response Content-Type header does not indicate JSON, causing the response to be misinterpreted
  • 4The function returned a JSON array at the root level instead of a JSON object, which is not a valid JObject

How to fix it

  1. 1Step 1: Test the Azure Function independently using a tool like Postman or curl to inspect the raw response body and Content-Type header.
  2. 2Step 2: Modify the Azure Function code to ensure it always returns a properly structured JSON object (e.g., `{ "status": "success", "result": ... }`) rather than a raw string, array, or non-JSON body.
  3. 3Step 3: Ensure the function sets the response Content-Type header to `application/json` to signal that the response body is JSON.
  4. 4Step 4: Add error handling within the Azure Function so that failures return a structured JSON error object rather than an HTML error page or empty response.
  5. 5Step 5: In the Fabric pipeline, use the Debug run feature to inspect the raw output of the Azure Function Activity and confirm the response structure before using it in downstream activities.

Frequently asked questions

My Azure Function returns a JSON array — why does this cause Error 3603?

A JSON array (e.g., `[{...}, {...}]`) is not a JSON object (JObject). The Azure Function Activity expects the root of the response to be a JSON object with named properties. Wrap your array in an object, such as `{ "items": [{...}, {...}] }`, to resolve this.

Can I use the Web Activity instead of the Azure Function Activity to avoid this restriction?

Yes. The Web Activity is more flexible in how it handles responses and may be a suitable alternative if your function returns non-object JSON or if you need to handle varied response formats. However, you will lose the built-in Azure Function authentication integration provided by the Azure Function Activity.

Other data format errors