Yesterday, 10:22 AM
(This post was last modified: Yesterday, 10:23 AM by designingbeing. Edited 1 time in total.)
Hey, I'd really like to get a webhook running but I can't get it to send anything.
All I'm able to see so far is a 'System.Text.Json.JsonException: The JSON value could not be converted to System.String' error.
Unfortunately I'm not making any progress on my own.
I've tried uninstalling + reinstalling the webhooks plugin, a few different templates, Send All Properties=true, but it always fails to send.
The receiver works when I run a manual test with curl, it just seems Jellyfin webhook isn't sending anything.
Any pointers on where I could be going wrong & how to resolved would really be appreciated!
Or should this should be submitted as a bug report?
Jellyfin Version: 10.11.5
OS: Debian 12
The error I'm seeing in logs is:
Webhook config:
logging.json:
All I'm able to see so far is a 'System.Text.Json.JsonException: The JSON value could not be converted to System.String' error.
Unfortunately I'm not making any progress on my own.
I've tried uninstalling + reinstalling the webhooks plugin, a few different templates, Send All Properties=true, but it always fails to send.
The receiver works when I run a manual test with curl, it just seems Jellyfin webhook isn't sending anything.
Any pointers on where I could be going wrong & how to resolved would really be appreciated!
Or should this should be submitted as a bug report?
Jellyfin Version: 10.11.5
OS: Debian 12
The error I'm seeing in logs is:
Code:
[2025-12-17 15:37:22.858 +11:00] [INF] Removing item, Type: "Episode", Name: "Sora Not Sorry", Path: "/mnt/sdb2/common/jellyfin/shows/South Park/Season 28/South Park - S28E03 - Sora Not Sorry WEBDL-720p.mkv", Id: f4a0d135-b257-d2d3-e94a-d2197d3803cf
[2025-12-17 15:37:22.863 +11:00] [INF] Deleting item path, Type: "Episode", Name: "Sora Not Sorry", Path: "/mnt/sdb2/common/jellyfin/shows/South Park/Season 28/South Park - S28E03 - Sora Not Sorry WEBDL-720p.mkv", Id: f4a0d135-b257-d2d3-e94a-d2197d3803cf
[2025-12-17 15:37:22.973 +11:00] [INF] Deleting item path, Type: "Episode", Name: "Sora Not Sorry", Path: "/mnt/sdb2/common/jellyfin/shows/South Park/Season 28/South Park - S28E03 - Sora Not Sorry WEBDL-720p-thumb.jpg", Id: f4a0d135-b257-d2d3-e94a-d2197d3803cf
[2025-12-17 15:37:32.895 +11:00] [INF] WS "192.168.1.130" closed
[2025-12-17 15:37:33.045 +11:00] [INF] Timer elapsed - processing queued items
[2025-12-17 15:37:33.045 +11:00] [INF] No events... stopping queue timer
[2025-12-17 15:37:33.720 +11:00] [INF] WS "192.168.1.130" request
[2025-12-17 15:37:47.797 +11:00] [INF] Sending ForceKeepAlive message to 1 inactive WebSockets.
[2025-12-17 15:38:11.938 +11:00] [INF] WS "192.168.1.130" closed
[2025-12-17 15:38:13.041 +11:00] [INF] WS "192.168.1.130" request
[2025-12-17 15:38:22.980 +11:00] [INF] "Season 28" ("/mnt/sdb2/common/jellyfin/shows/South Park/Season 28") will be refreshed.
[2025-12-17 15:38:35.796 +11:00] [INF] Sending ForceKeepAlive message to 1 inactive WebSockets.
[2025-12-17 15:38:42.150 +11:00] [ERR] Unable to send notification
System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: $.Item | LineNumber: 2 | BytePositionInLine: 11.
---> System.InvalidOperationException: Cannot get the value of a token type 'StartObject' as a string.
at System.Text.Json.ThrowHelper.ThrowInvalidOperationException_ExpectedString(JsonTokenType tokenType)
at System.Text.Json.Utf8JsonReader.GetString()
at System.Text.Json.Serialization.JsonDictionaryConverter`3.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, TDictionary& value)
at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue)
at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, T& value, JsonSerializerOptions options, ReadStack& state)
--- End of inner exception stack trace ---
at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, Utf8JsonReader& reader, Exception ex)
at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, T& value, JsonSerializerOptions options, ReadStack& state)
at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo`1 jsonTypeInfo)
at Jellyfin.Plugin.Webhook.Destinations.GenericForm.GenericFormClient.SendAsync(GenericFormOption option, Dictionary`2 data)
at Jellyfin.Plugin.Webhook.WebhookSender.SendNotification[T](IWebhookClient`1 webhookClient, T option, Dictionary`2 itemData, Type itemType)
[2025-12-17 15:38:42.151 +11:00] [INF] "Webhook Item Deleted Notifier" Completed after 0 minute(s) and 0 seconds
[2025-12-17 15:38:42.556 +11:00] [INF] "Webhook Item Added Notifier" Completed after 0 minute(s) and 0 seconds
[2025-12-17 15:38:43.041 +11:00] [INF] WS "192.168.1.130" closed
[2025-12-17 15:38:43.886 +11:00] [INF] WS "192.168.1.130" request
[2025-12-17 15:40:13.111 +11:00] [INF] "Webhook Item Deleted Notifier" Completed after 0 minute(s) and 0 seconds
[2025-12-17 15:40:13.566 +11:00] [INF] "Webhook Item Added Notifier" Completed after 0 minute(s) and 0 seconds
[2025-12-17 15:40:18.617 +11:00] [INF] "Season 28" ("/mnt/sdb2/common/jellyfin/shows/South Park/Season 28") will be refreshed.Webhook config:
logging.json:
Code:
{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning",
"Jellyfin.Plugin.Webhook": "Debug"
}
},
"WriteTo": [
{
"Name": "Console",
"Args": {
"outputTemplate": "[{Timestamp:HH:mm:ss}] [{Level:u3}] {Message:lj}{NewLine}{Exception}"
}
},
{
"Name": "Async",
"Args": {
"configure": [
{
"Name": "File",
"Args": {
"path": "%JELLYFIN_LOG_DIR%//jellyfin.log",
"fileSizeLimitBytes": 10485700,
"rollOnFileSizeLimit": true,
"retainedFileCountLimit": 10,
"outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}] [{Level:u3}] {Message}{NewLine}{Exception}"
}
}
]
}
}
],
}
}