Michael Schwartz
07/03/2025, 6:23 PM{
"id": "06866c9a-c6d3-7882-8000-3b45ad481e80",
"account": "1f68ce6c-568d-4d7a-ae99-9641099300bd",
"event": "prefect-cloud.webhook.failed",
"occurred": "2025-07-03T18:19:24.426Z",
"payload": {
"method": "POST",
"headers": {
"host": "api.prefect.cloud",
"user-agent": "python-requests/2.32.3",
"accept-encoding": "gzip, deflate",
"accept": "*/*",
"content-type": "application/json",
"content-length": "3336",
"x-request-id": "97d2c8e4-59b5-9374-bc7a-41a6da081a59"
},
"body": "{\"data\": [{\"__record_id\": \"variant_id1__unifydmaster\", \"__unifyd_master\": \"1\", \"category_src_normalized\": \"Flower\", \"strain_dict_extract2\": \"WEDDING PIE\", \"product_id_src\": \"fa6c87ff5ca1ba3abe0c78dd2830b420\", \"source\": \"dutchie\", \"uom\": \"gram\", \"price\": \"21.0\", \"product_id\": null, \"segment\": \"Buds\", \"state\": \"Ontario\", \"cannabis_type\": \"INDICA\", \"brand\": \"BACK FORTY\", \"product_presentation\": \"3.50 gram\", \"strain\": \"WEDDING PIE\", \"variant_url\": \"<https://dutchie.com/dispensary/true-north-cannabis-welland/product/wedding-pie-wedding-cake-x-grape-pie-3-5g>\", ...",
"compiled": null,
"reason": "unexpected character: line 5 column 19 (char 121)"
},
"received": "2025-07-03T18:19:24.426Z",
"related": [],
"resource": {
"prefect.resource.id": "prefect-cloud.webhook.283c8f61-321f-4336-99a8-b679b2206dbf",
"prefect.resource.name": "Upsert Catsy Products"
},
"workspace": "8f854e6c-4fe7-49b7-860c-8f2e7973c905"
}
how to fix.
webhook template
"event": "pim.unifyd.catsy",
"resource": {
"prefect.resource.id": "pim.unifyd.catsy.handle",
"payload": "{{ body | tojson }}"
}
}
Marvin
07/03/2025, 6:23 PMMarvin
07/03/2025, 6:23 PM<
and >
).
Here's how to fix it:
1. Remove the angle brackets from URLs in your payload. Instead of:
json
"variant_url": "<https://dutchie.com/...>"
It should be:
json
"variant_url": "<https://dutchie.com/...>"
2. Your webhook template looks incomplete. For Prefect webhooks, you'll want a complete template like this:
json
{
"event": "pim.unifyd.catsy",
"resource": {
"prefect.resource.id": "pim.unifyd.catsy.handle",
"prefect.resource.name": "Catsy Product Handler",
"payload": {{ body | tojson }}
}
}
Note that:
- The payload
field uses {{ body | tojson }}
without quotes since it's already being converted to JSON
- Make sure all your JSON data is properly escaped
- URLs should not contain angle brackets
- The template should be a complete JSON object
You can validate your JSON payload using a JSON validator before sending it to ensure it's properly formatted. The error "unexpected character" typically means there's a syntax error in your JSON structure.
For more details on webhook configuration, you can refer to the Prefect Webhook documentation.Bring your towel and join one of the fastest growing data communities. Welcome to our second-generation open source orchestration platform, a completely rethought approach to dataflow automation.
Powered by