API bug - An unhandled exception was thrown by the application. System.InvalidOperationException: Nullable object must have a value. -
This bug have just start with nothing happen ( no update no reboot nothing juste happen )
It happen when we ask fot /api/pools
I was in dev branch and try in master, Same bug
[2022-12-02 23:55:04.2820] [D] [Connections] Connection id "0HMMKO1MPA8P3" started.
[2022-12-02 23:55:04.2820] [I] [Diagnostics] Request starting HTTP/1.0 GET http://pool.mynewmining.com/api/pools - -
[2022-12-02 23:55:04.2820] [T] [ResponseCompressionProvider] This request accepts compression.
[2022-12-02 23:55:04.2820] [D] [TreeRouter] Request successfully matched the route with name '(null)' and template 'api/pools'
[2022-12-02 23:55:04.2820] [D] [ParameterBinder] Attempting to bind parameter 'ct' of type 'System.Threading.CancellationToken' ...
[2022-12-02 23:55:04.2820] [D] [ParameterBinder] Done attempting to bind parameter 'ct' of type 'System.Threading.CancellationToken'.
[2022-12-02 23:55:04.2820] [D] [ParameterBinder] Attempting to validate the bound parameter 'ct' of type 'System.Threading.CancellationToken' ...
[2022-12-02 23:55:04.2820] [D] [ParameterBinder] Done attempting to validate the bound parameter 'ct' of type 'System.Threading.CancellationToken'.
[2022-12-02 23:55:04.2820] [D] [ParameterBinder] Attempting to bind parameter 'topMinersRange' of type 'System.UInt32' ...
[2022-12-02 23:55:04.2820] [D] [SimpleTypeModelBinder] Attempting to bind parameter 'topMinersRange' of type 'System.UInt32' using the name '' in request data ...
[2022-12-02 23:55:04.2820] [D] [SimpleTypeModelBinder] Could not find a value in the request with name '' for binding parameter 'topMinersRange' of type 'System.UInt32'.
[2022-12-02 23:55:04.2820] [D] [SimpleTypeModelBinder] Done attempting to bind parameter 'topMinersRange' of type 'System.UInt32'.
[2022-12-02 23:55:04.2820] [D] [ParameterBinder] Done attempting to bind parameter 'topMinersRange' of type 'System.UInt32'.
[2022-12-02 23:55:04.2820] [D] [ParameterBinder] Attempting to validate the bound parameter 'topMinersRange' of type 'System.UInt32' ...
[2022-12-02 23:55:04.2820] [D] [ParameterBinder] Done attempting to validate the bound parameter 'topMinersRange' of type 'System.UInt32'.
[2022-12-02 23:55:04.8215] [E] [Kestrel] Connection id "0HMMKO1MPA8P3", Request id "0HMMKO1MPA8P3:00000002": An unhandled exception was thrown by the application. System.InvalidOperationException: Nullable object must have a value.
[2022-12-03 11:56:02.6508] [E] [Kestrel] Connection id "0HMML4LB6EIUB", Request id "0HMML4LB6EIUB:00000002": An unhandled exception was thrown by the application. System.InvalidOperationException: Nullable object must have a value.
at System.Nullable`1.get_Value()
at Miningcore.Api.Controllers.PoolApiController.<>c__DisplayClass10_0.<<Get>b__1>d.MoveNext() in /home/raptor/miningcore/src/Miningcore/Api/Controllers/PoolApiController.cs:line 78
--- End of stack trace from previous location ---
at Miningcore.Api.Controllers.PoolApiController.Get(CancellationToken ct, UInt32 topMinersRange) in /home/raptor/miningcore/src/Miningcore/Api/Controllers/PoolApiController.cs:line 55
at lambda_method1728(Closure , Object )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
at Miningcore.Api.Middlewares.ApiRequestMetricsMiddleware.Invoke(HttpContext context) in /home/raptor/miningcore/src/Miningcore/Api/Middlewares/ApiRequestMetricsMiddleware.cs:line 31
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
at Miningcore.Api.Middlewares.IPAccessWhitelistMiddleware.Invoke(HttpContext context) in /home/raptor/miningcore/src/Miningcore/Api/Middlewares/IPAccessWhitelistMiddleware.cs:line 40
at Miningcore.Api.Middlewares.IPAccessWhitelistMiddleware.Invoke(HttpContext context) in /home/raptor/miningcore/src/Miningcore/Api/Middlewares/IPAccessWhitelistMiddleware.cs:line 40
at Miningcore.Api.Middlewares.ApiExceptionHandlingMiddleware.InvokeAsync(HttpContext context) in /home/raptor/miningcore/src/Miningcore/Api/Middlewares/ApiExceptionHandlingMiddleware.cs:line 18
at AspNetCoreRateLimit.RateLimitMiddleware`1.Invoke(HttpContext context) in C:\Users\User\Documents\Github\AspNetCoreRateLimit\src\AspNetCoreRateLimit\Middleware\RateLimitMiddleware.cs:line 124
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application) at System.Nullable`1.get_Value()
at Miningcore.Api.Controllers.PoolApiController.<>c__DisplayClass10_0.<<Get>b__1>d.MoveNext() in /home/raptor/miningcore/src/Miningcore/Api/Controllers/PoolApiController.cs:line 78
--- End of stack trace from previous location ---
at Miningcore.Api.Controllers.PoolApiController.Get(CancellationToken ct, UInt32 topMinersRange) in /home/raptor/miningcore/src/Miningcore/Api/Controllers/PoolApiController.cs:line 55
at lambda_method1728(Closure , Object )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
at Miningcore.Api.Middlewares.ApiRequestMetricsMiddleware.Invoke(HttpContext context) in /home/raptor/miningcore/src/Miningcore/Api/Middlewares/ApiRequestMetricsMiddleware.cs:line 31
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
at Miningcore.Api.Middlewares.IPAccessWhitelistMiddleware.Invoke(HttpContext context) in /home/raptor/miningcore/src/Miningcore/Api/Middlewares/IPAccessWhitelistMiddleware.cs:line 40
at Miningcore.Api.Middlewares.IPAccessWhitelistMiddleware.Invoke(HttpContext context) in /home/raptor/miningcore/src/Miningcore/Api/Middlewares/IPAccessWhitelistMiddleware.cs:line 40
at Miningcore.Api.Middlewares.ApiExceptionHandlingMiddleware.InvokeAsync(HttpContext context) in /home/raptor/miningcore/src/Miningcore/Api/Middlewares/ApiExceptionHandlingMiddleware.cs:line 18
at AspNetCoreRateLimit.RateLimitMiddleware`1.Invoke(HttpContext context) in C:\Users\User\Documents\Github\AspNetCoreRateLimit\src\AspNetCoreRateLimit\Middleware\RateLimitMiddleware.cs:line 124
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
[2022-12-03 11:56:02.6542] [I] [Diagnostics] Request finished HTTP/1.0 GET http://pool.mynewmining.com/api/pools - - - 500 0 - 412.8942ms
Hi,
I'm sorry, this bug was probably introduced by me in #1366.
I though the topMinersRange parameter was optional but for some reason it isn't.
As a workaround you can set it explicitly like http://pool.mynewmining.com/api/pools?topMinersRange=1 and http://pool.mynewmining.com/api/pools/pool1?topMinersRange=1.
@oliverw do you have any idea why the parameter isn't optional? I though adding a default value would make it so.
Hi, I'm sorry, this bug was probably introduced by me in #1366. I though the
topMinersRangeparameter was optional but for some reason it isn't.As a workaround you can set it explicitly like
http://pool.mynewmining.com/api/pools?topMinersRange=1andhttp://pool.mynewmining.com/api/pools/pool1?topMinersRange=1.@oliverw do you have any idea why the parameter isn't optional? I though adding a default value would make it so.
I'm surprised as well.
Hi, I'm sorry, this bug was probably introduced by me in #1366. I though the
topMinersRangeparameter was optional but for some reason it isn't.As a workaround you can set it explicitly like
http://pool.mynewmining.com/api/pools?topMinersRange=1andhttp://pool.mynewmining.com/api/pools/pool1?topMinersRange=1.@oliverw do you have any idea why the parameter isn't optional? I though adding a default value would make it so.
Ah ah no probs it happen ... ;)
Maybe force a 0 value insted of null ?
Actually I'm not so sure if that really is the issue. I couldn't reproduce it on our production pool or on my dev environment.
Also a curl -L http://pool.mynewmining.com/api/pools seems to work. Did you change something in the backend? @LoulouCrypto
at Miningcore.Api.Controllers.PoolApiController.<>c__DisplayClass10_0.<<Get>b__1>d.MoveNext() in /home/raptor/miningcore/src/Miningcore/Api/Controllers/PoolApiController.cs:line 78
Seems more like the effort is null here:
https://github.com/oliverw/miningcore/blob/171a262a3f7861bbb54178d385806b9afebcb0af/src/Miningcore/Api/Controllers/PoolApiController.cs#L78
Same goes for https://github.com/oliverw/miningcore/blob/171a262a3f7861bbb54178d385806b9afebcb0af/src/Miningcore/Api/Controllers/PoolApiController.cs#L146
which is probably the issue in #1518
uhhh please don't git blame these lines :D
Actually I'm not so sure if that really is the issue. I couldn't reproduce it on our production pool or on my dev environment.
Also a
curl -L http://pool.mynewmining.com/api/poolsseems to work. Did you change something in the backend? @LoulouCrypto
Yes i stop the btrm2 pool the problem that is it never had miners
Just went to update MC and had to revert back. Seems the API bug is still in the current build. IS there a workaround for this? Everything works perfect except the api. see below:
[2023-04-15 16:15:45.1023] [I] [XmlKeyManager] User profile is available. Using '/home/magecrimson/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.
[2023-04-15 16:15:47.4732] [I] [Diagnostics] Request starting HTTP/1.0 GET http://api/api/pools - -
[2023-04-15 16:15:47.6401] [E] [Kestrel] Connection id "0HMPTTOPK20G7", Request id "0HMPTTOPK20G7:00000002": An unhandled exception was thrown by the application. System.InvalidOperationException: Nullable object must have a value.
at System.Nullable1.get_Value() at Miningcore.Api.Controllers.PoolApiController.<>c__DisplayClass10_0.<<Get>b__1>d.MoveNext() in /home/magecrimson/Downloads/miningcorekrip/miningcore/src/Miningcore/Api/Controllers/PoolApiController.cs:line 78 --- End of stack trace from previous location --- at Miningcore.Api.Controllers.PoolApiController.Get(CancellationToken ct, UInt32 topMinersRange) in /home/magecrimson/Downloads/miningcorekrip/miningcore/src/Miningcore/Api/Controllers/PoolApiController.cs:line 55 at lambda_method1624(Closure , Object ) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
at Miningcore.Api.Middlewares.ApiRequestMetricsMiddleware.Invoke(HttpContext context) in /home/magecrimson/Downloads/miningcorekrip/miningcore/src/Miningcore/Api/Middlewares/ApiRequestMetricsMiddleware.cs:line 31
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
at Miningcore.Api.Middlewares.IPAccessWhitelistMiddleware.Invoke(HttpContext context) in /home/magecrimson/Downloads/miningcorekrip/miningcore/src/Miningcore/Api/Middlewares/IPAccessWhitelistMiddleware.cs:line 40
at Miningcore.Api.Middlewares.IPAccessWhitelistMiddleware.Invoke(HttpContext context) in /home/magecrimson/Downloads/miningcorekrip/miningcore/src/Miningcore/Api/Middlewares/IPAccessWhitelistMiddleware.cs:line 40
at Miningcore.Api.Middlewares.ApiExceptionHandlingMiddleware.InvokeAsync(HttpContext context) in /home/magecrimson/Downloads/miningcorekrip/miningcore/src/Miningcore/Api/Middlewares/ApiExceptionHandlingMiddleware.cs:line 18
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication1 application) at System.Nullable1.get_Value()
at Miningcore.Api.Controllers.PoolApiController.<>c__DisplayClass10_0.<<Get>b__1>d.MoveNext() in /home/magecrimson/Downloads/miningcorekrip/miningcore/src/Miningcore/Api/Controllers/PoolApiController.cs:line 78
--- End of stack trace from previous location ---
at Miningcore.Api.Controllers.PoolApiController.Get(CancellationToken ct, UInt32 topMinersRange) in /home/magecrimson/Downloads/miningcorekrip/miningcore/src/Miningcore/Api/Controllers/PoolApiController.cs:line 55
at lambda_method1624(Closure , Object )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask1 actionResultValueTask) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext) at Miningcore.Api.Middlewares.ApiRequestMetricsMiddleware.Invoke(HttpContext context) in /home/magecrimson/Downloads/miningcorekrip/miningcore/src/Miningcore/Api/Middlewares/ApiRequestMetricsMiddleware.cs:line 31 at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context) at Miningcore.Api.Middlewares.IPAccessWhitelistMiddleware.Invoke(HttpContext context) in /home/magecrimson/Downloads/miningcorekrip/miningcore/src/Miningcore/Api/Middlewares/IPAccessWhitelistMiddleware.cs:line 40 at Miningcore.Api.Middlewares.IPAccessWhitelistMiddleware.Invoke(HttpContext context) in /home/magecrimson/Downloads/miningcorekrip/miningcore/src/Miningcore/Api/Middlewares/IPAccessWhitelistMiddleware.cs:line 40 at Miningcore.Api.Middlewares.ApiExceptionHandlingMiddleware.InvokeAsync(HttpContext context) in /home/magecrimson/Downloads/miningcorekrip/miningcore/src/Miningcore/Api/Middlewares/ApiExceptionHandlingMiddleware.cs:line 18 at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication1 application)
[2023-04-15 16:15:47.6548] [I] [Diagnostics] Request finished HTTP/1.0 GET http://api/api/pools - - - 500 0 - 182.3411ms
Yes i have the same problèm since Yesterday....
@LoulouCrypto It looks like if you navigate to /api/pools/poolname example /api/pools/monero it will provide the results. It seem like the default action of /api/pools which used to display all pools no longer works..
@oliverw From my testing it looks like the api/pools/poolname always works regardless. But if you have a SOLO pool set to enabled = true in your pool.json the /api/pools/ complete list will fail.
If that info helps anyone great. For now I have disabled all solo pools and the api is working as expected, though not ideal as I also need solo pools to be seen in the complete pools listing under /api/pools
After more time review , it looks as if a pool is not connected to for x amount of time and no values are present the /apr/pools url fails. directly visiting a pool at /api/pools/poolname continues to work.
Can we get an update to this issue or a work around? @oliverw
This issue was fixed in the dev branch by #1540
@jon4hz Thanks will play with it tonight. Many thanks.