Hello, I am continuing to test Horde for integration into our pipelines. Today I encountered an issue while reserving a device through the Device Manager.
My request in swagger:
/api/v2/devices/reservations { "poolId": "ci", "devices": [ { "platformId": "playstation" } ]
In response, I receive the following error:
{ "time": "2025-06-09T16:26:27", "level": "Error", "message": "Unhandled exception: Object reference not set to an instance of an object.", "format": "Unhandled exception: {Message}", "properties": { "Message": "Object reference not set to an instance of an object." }, "exception": { "message": "Object reference not set to an instance of an object.", "trace": " at HordeServer.Devices.DevicesController.CreateDeviceReservationAsync(CreateDeviceReservationRequest request) in /app/Source/Programs/Horde/Plugins/Build/HordeServer.Build/Devices/DevicesController.cs:line 549\n at lambda_method9063(Closure, Object)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask
1 actionResultValueTask)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\n at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)",
“innerExceptions”:
}
}`Despite the error, the reservation is made; however, I do not receive a proper response, which means I don’t have access to the reservation ID (and I assume the IP address should also be returned).
We are using the latest version of the assembled container.
I can build my own container with added logging, but perhaps this is a known issue?
And one more question: is there a way to restrict the permission to create new entries in the Device Manager? Even with zero claims, I was still able to add new devices.
Best regards,
Edward