Jellyfin Forum
Webhook - Unable to send notification - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: Webhook - Unable to send notification (/t-webhook-unable-to-send-notification)



Webhook - Unable to send notification - designingbeing - 2025-12-17

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:
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}"
                            }
                        }
                    ]
                }
            }
        ],
    }
}