Consideration
When creating an ArcGIS Online Feature Service webhook, you may encounter issues if the webhook sends JSON that begins with square brackets. This commonly occurs when the webhook header content-type is set to application/json, and the payload is an array rather than a JSON object.
When this payload is received by an automation webhook trigger in FME Flow, the request may fail and return a 422 error, preventing the automation from processing the message.
Why This Happens
FME Flow expects incoming webhook messages to be formatted as a JSON object enclosed in curly brackets {}. While the JSON specification allows both objects and arrays [] at the root level, the webhook trigger in FME Flow currently expects the message to begin with an object.
If the JSON payload begins with square brackets[], such as:
["Ford", "BMW", "Fiat"]
FME Flow attempts to parse the message as an object and fails, returning an error similar to:
{"message": "A JSONObject text must begin with '{' at 1 [character 2 line 1]"This behavior occurs because the webhook trigger validates the incoming payload format before passing it to the automation.
How to Resolve It
Instead of sending the payload with content-type = application/json, update the webhook header so that FME Flow does not enforce object-style JSON parsing.
You can use either of the following content types:
- application/x-www-form-urlencoded
- text/plain
Both options allow the webhook trigger to accept any JSON structure, including arrays.
For ArcGIS Online Feature Service webhooks, update the webhook configuration so the header uses:
- content-type: application/x-www-form-urlencoded
After this change, the webhook trigger in FME Flow will accept the incoming message regardless of whether the JSON payload begins with {} or [].
Additional Notes
- This behavior is related to how the webhook trigger parses incoming payloads rather than a limitation of the JSON standard.
- If you control the webhook payload structure, another option is to wrap the array in an object before sending it.
Example:
{
"vehicles": ["Ford", "BMW", "Fiat"]
}