Fabric Notebook Job

The Fabric Notebook job type runs a Microsoft Fabric Notebook item in a workspace via POST /workspaces/{wsId}/items/{itemId}/jobs/instances?jobType=RunNotebook. The notebook is identified by its item ID — Polysync stores that ID in the Job's External Id.

This job type is supported on the Microsoft Fabric platform.

Required job fields

  • External Id — the Fabric item ID (GUID) of the Notebook.
  • Job TypeFabric Notebook (set automatically on import).

Job discovery

Polysync calls GET /workspaces/{workspaceId}/items?type=Notebook (paginated with a continuationToken) to list every Notebook item in the workspace.

Parameter handling

Input + Input&Output parameters are sent as the executionData.parameters object, with each value carrying its Data Type so Fabric can coerce it correctly:

{
  "executionData": {
    "parameters": {
      "<name>": { "value": "<value>", "type": "string|int|bool|float" }
    }
  }
}
Direction Sent in jobs/instances Updated from response
Input
Output (not supported)
Input&Output (not supported)

Output parameters are not supported. The Fabric Jobs Instances API surfaces only status and timing — not notebook return values. Persist results to a Lakehouse / Warehouse table instead.

Execution flow

  1. Polysync POSTs the parameter body to the jobs/instances?jobType=RunNotebook endpoint and reads the new instance's id from the Location header.

  2. Status is polled via GET /workspaces/{wsId}/items/{itemId}/jobs/instances/{instanceId} and status is decoded:

    Fabric instance status Polysync status
    completed Success
    failed Failed
    cancelled Cancelled
    inprogress Running
    notstarted Starting
    dehydrated Running
    (other) Unknown
  3. Cancel is supported via POST /jobs/instances/{instanceId}/cancel.

Monitor URL

https://app.fabric.microsoft.com/groups/{workspaceId}/synapsenotebooks/{itemId}

Best practices

  • Declare every parameter your notebook expects with mssparkutils.notebook.exit / dbutils.widgets.text style so it's obvious which Polysync parameter names to use.
  • Use the right Data Type per parameter (int, bool, float) so Fabric performs the coercion server-side instead of your notebook having to parse strings.

Troubleshooting

  • HTTP 400 on execute — the parameter's type does not match the Notebook's declared widget type. Align the Polysync Data Type with the Notebook's parameter declaration.
  • dehydrated status reported as Running — Fabric is rehydrating a serverless pool; that's normal for cold-starts.