# Plex Webhooks - "One or more validation errors prevented the action from being performed"

**URL:** <https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780>\
**Category:** Plex Media Server\
**Tags:** server-linux, plex-web, webhooks\
**Created:** [April 11, 2025, 2:45pm UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780 "2025-04-11T14:45:26Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![bumzag](https://avatars.discourse-cdn.com/v4/letter/b/e9a140/32.png) [@bumzag](https://forums.plex.tv/u/bumzag)\
**Post date:** [April 11, 2025, 2:45pm UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780/1 "2025-04-11T14:45:26Z")

</div>

Server Version#: 1.41.5.9522  
Player Version#: 4.145.1

When trying to create a Webhook, I’m getting the error “One or more validation errors prevented the action from being performed”

- Doesn’t matter if accessing via `LAN-IP:32400/web` or `app.plex.tv`
- Server is claimed
- I have Plex Pass

Anyone got any info on this one?

 ![image](https://global.discourse-cdn.com/plex/original/4X/5/9/4/594d1aedb61fd99d3c3d9acf07aace3654796660.png)

---

<div class="post-metadata">

**Author:** ![drzoidberg33](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/drzoidberg33/32/4184_2.png) [@drzoidberg33](https://forums.plex.tv/u/drzoidberg33)\
**Post date:** [April 11, 2025, 2:49pm UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780/2 "2025-04-11T14:49:59Z")

</div>

It needs to be an absolute URL. If you want it to be relative to the server then use e.g. [http://localhost](http://localhost):port/test

[https://support.plex.tv/articles/115002267687-webhooks/](https://support.plex.tv/articles/115002267687-webhooks/)

---

<div class="post-metadata">

**Author:** ![bumzag](https://avatars.discourse-cdn.com/v4/letter/b/e9a140/32.png) [@bumzag](https://forums.plex.tv/u/bumzag)\
**Post date:** [April 11, 2025, 3:17pm UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780/3 "2025-04-11T15:17:36Z")

</div>

Awesome, thank you I didn’t look closely at the example pic in the article. Are there more indepth docs for the webhooks beyond that article?

---

<div class="post-metadata">

**Author:** ![drzoidberg33](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/drzoidberg33/32/4184_2.png) [@drzoidberg33](https://forums.plex.tv/u/drzoidberg33)\
**Post date:** [April 11, 2025, 3:19pm UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780/4 "2025-04-11T15:19:43Z")

</div>

That’s the full documentation, is there something specific you want to know that isn’t covered there?

---

<div class="post-metadata">

**Author:** ![bumzag](https://avatars.discourse-cdn.com/v4/letter/b/e9a140/32.png) [@bumzag](https://forums.plex.tv/u/bumzag)\
**Post date:** [April 12, 2025, 11:53pm UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780/5 "2025-04-12T23:53:40Z")

</div>

I was hoping to find more info on the `discover.json` and `lineup_status.json` GETs from Plex’s API. Are those at all related and or is information on them available?

---

<div class="post-metadata">

**Author:** ![pshanew](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/pshanew/32/160555_2.png) [@pshanew](https://forums.plex.tv/u/pshanew)\
**Post date:** [April 13, 2025, 12:34am UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780/6 "2025-04-13T00:34:52Z")

</div>

Those aren’t part of the webhook notification system. Those belong to the SiliconDust HDHomeRun HTTP API:

> **[http\_api \[HDHomeRun Documentation\]](https://info.hdhomerun.com/info/http_api)**

It’s the API Plex uses to communication with SiliconDust’s network tuners (HDHomeRun devices).

- discover.json - Returns a list of HDHomeRun tuners available on the local network.
- lineup\_status.json - Returns information regarding the lineup available to the HDHomeRun (status, type, scan in progress)

Unfortunately SD’s documentation for their API is somewhat incomplete. But it’s generally not necessary unless you’re building an app to interact directly with their tuners.

---

<div class="post-metadata">

**Author:** ![bumzag](https://avatars.discourse-cdn.com/v4/letter/b/e9a140/32.png) [@bumzag](https://forums.plex.tv/u/bumzag)\
**Post date:** [April 13, 2025, 12:46am UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780/7 "2025-04-13T00:46:18Z")

</div>

Is that API restricted to apps to use with a SiliconDust device, and if so is there an alternative for that function? Basically I’m looking to setup an HLS server to emulate a tuner to serve m3u files as Live TV channels

---

<div class="post-metadata">

**Author:** ![pshanew](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/pshanew/32/160555_2.png) [@pshanew](https://forums.plex.tv/u/pshanew)\
**Post date:** [April 13, 2025, 12:52am UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780/8 "2025-04-13T00:52:10Z")

</div>

There are several projects in the wild which implement SiliconDust’s proprietary API so as to emulate their tuners’ functionality. For example, see Threadfin (itself a redo of xTeVe):

> **[GitHub - Threadfin/Threadfin: an M3U proxy for Kernel/Plex/Jellyfin/Emby based...](https://github.com/Threadfin/Threadfin)**
>
> an M3U proxy for Kernel/Plex/Jellyfin/Emby based on xTeVe

---

<div class="post-metadata">

**Author:** ![bumzag](https://avatars.discourse-cdn.com/v4/letter/b/e9a140/32.png) [@bumzag](https://forums.plex.tv/u/bumzag)\
**Post date:** [April 13, 2025, 1:05am UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780/9 "2025-04-13T01:05:18Z")

</div>

Has there ever been discussion on if it’s okay to do that? A SD staff member said [they don’t allow HDHomeRun emulation](https://www.reddit.com/r/hdhomerun/comments/1jvaivf/comment/mm8neu0/)

Also, an additional side question open to anyone: when exactly do the [Session id’s](https://plexapi.dev/api-reference/sessions/get-active-sessions) get updated for the `/status/sessions` endpoint? I’m finding that with Mozilla and Edge, the sessions are remaining active after closing the window or tab that has an active stream. It seems to update if explicitly clicking “Stop”, but can’t confirm that’s consistent.

I’ve been using go to just dump the response from `/status/sessions`, and it takes several minutes for the session from the closed window/tab to be removed from the response. Sometimes I just go back, open the player and click “Stop”. This is the function I setup

```Go
package main

import (
	"context"
	"encoding/json"
	"fmt"
	"log"
	"os"

	"github.com/LukeHagar/plexgo"
)

func main() {
	ctx := context.Background()

	s := plexgo.New(
		plexgo.WithServerURL(""), 
		plexgo.WithSecurity(""),
	)

	res, err := s.Sessions.GetSessions(ctx)
	if err != nil {
		log.Fatal(err)
	}
	if res.Object != nil {
		jsonData, err := json.MarshalIndent(res.Object, "", " ")
		if err != nil {
			log.Fatal(err)
		}

		if len(res.Object.MediaContainer.Metadata) != 0 {
			sessionID := res.Object.MediaContainer.Metadata[0].Session.ID
			playerAddress := res.Object.MediaContainer.Metadata[0].Player.Address
			fmt.Println(*sessionID)
			fmt.Println(*playerAddress)
		}

		// Print to a file
		filename := "plex_sessions.json"
		file, err := os.Create(filename)
		if err != nil {
			log.Fatal("Cannot create file:", err)
		}
		defer file.Close()

		_, err = file.Write(jsonData)
		if err != nil {
			log.Fatal("Cannot write to file:", err)
		}
		fmt.Printf("JSON data written to %s\n", filename)
	}
}

```

---

<div class="post-metadata">

**Author:** ![pshanew](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/pshanew/32/160555_2.png) [@pshanew](https://forums.plex.tv/u/pshanew)\
**Post date:** [April 13, 2025, 1:13am UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780/10 "2025-04-13T01:13:35Z")

</div>

> [@bumzag](#):
>
> Has there ever been discussion on if it’s okay to do that?

I’d take anything I found on Reddit with a rather large grain of salt. However, if you trust that that individual does indeed represent their interests, I would certainly defer to them.

Having said that, given that the original question was deleted from that thread, it’s hard to say exactly what they were responding to. Was it someone asking about creating a commercial product? Or was it related to a personal project? Does it matter?

At any rate, this is probably a topic better addressed via their own support resources or forum (they have a development support forum).

---

<div class="post-metadata">

**Author:** ![bumzag](https://avatars.discourse-cdn.com/v4/letter/b/e9a140/32.png) [@bumzag](https://forums.plex.tv/u/bumzag)\
**Post date:** [April 13, 2025, 1:16am UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780/11 "2025-04-13T01:16:40Z")

</div>

Yeah I was planning on taking it up with them, was just hoping there was already some good info. Thanks!

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/plex/original/3X/2/a/2acb9765406f63293d357b4ec509ec39aa28f2ad.png) [@system](https://forums.plex.tv/u/system)\
**Post date:** [July 12, 2025, 1:17am UTC](https://forums.plex.tv/t/plex-webhooks-one-or-more-validation-errors-prevented-the-action-from-being-performed/912780/12 "2025-07-12T01:17:33Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
