diff --git a/Jellyfin.Api/Controllers/ConfigurationController.cs b/Jellyfin.Api/Controllers/ConfigurationController.cs
index 60529e9904..464fadc060 100644
--- a/Jellyfin.Api/Controllers/ConfigurationController.cs
+++ b/Jellyfin.Api/Controllers/ConfigurationController.cs
@@ -86,21 +86,23 @@ namespace Jellyfin.Api.Controllers
/// Updates named configuration.
///
/// Configuration key.
+ /// Configuration.
/// Named configuration updated.
/// Update status.
[HttpPost("Configuration/{key}")]
[Authorize(Policy = Policies.RequiresElevation)]
[ProducesResponseType(StatusCodes.Status204NoContent)]
- public async Task UpdateNamedConfiguration([FromRoute, Required] string key)
+ public ActionResult UpdateNamedConfiguration([FromRoute, Required] string key, [FromBody, Required] JsonDocument configuration)
{
var configurationType = _configurationManager.GetConfigurationType(key);
- var configuration = await JsonSerializer.DeserializeAsync(Request.Body, configurationType, _serializerOptions).ConfigureAwait(false);
- if (configuration == null)
+ var deserializedConfiguration = configuration.Deserialize(configurationType, _serializerOptions);
+
+ if (deserializedConfiguration == null)
{
throw new ArgumentException("Body doesn't contain a valid configuration");
}
- _configurationManager.SaveConfiguration(key, configuration);
+ _configurationManager.SaveConfiguration(key, deserializedConfiguration);
return NoContent();
}