miningcore icon indicating copy to clipboard operation
miningcore copied to clipboard

API bug - An unhandled exception was thrown by the application. System.InvalidOperationException: Nullable object must have a value. -

Open LoulouCrypto opened this issue 3 years ago • 15 comments

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.

LoulouCrypto avatar Dec 03 '22 09:12 LoulouCrypto

[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

LoulouCrypto avatar Dec 03 '22 11:12 LoulouCrypto

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.

jon4hz avatar Dec 05 '22 02:12 jon4hz

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.

I'm surprised as well.

oliverw avatar Dec 05 '22 10:12 oliverw

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.

Ah ah no probs it happen ... ;)

Maybe force a 0 value insted of null ?

LoulouCrypto avatar Dec 05 '22 19:12 LoulouCrypto

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

jon4hz avatar Dec 06 '22 16:12 jon4hz

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

jon4hz avatar Dec 06 '22 16:12 jon4hz

uhhh please don't git blame these lines :D

jon4hz avatar Dec 06 '22 16:12 jon4hz

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

Yes i stop the btrm2 pool the problem that is it never had miners

LoulouCrypto avatar Dec 07 '22 20:12 LoulouCrypto

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

magecrimson avatar Apr 15 '23 20:04 magecrimson

Yes i have the same problèm since Yesterday....

LoulouCrypto avatar Apr 15 '23 20:04 LoulouCrypto

@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..

magecrimson avatar Apr 15 '23 20:04 magecrimson

@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

magecrimson avatar Apr 15 '23 21:04 magecrimson

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

magecrimson avatar Apr 25 '23 11:04 magecrimson

This issue was fixed in the dev branch by #1540

jon4hz avatar Apr 25 '23 15:04 jon4hz

@jon4hz Thanks will play with it tonight. Many thanks.

magecrimson avatar Apr 25 '23 15:04 magecrimson