wildmountainfarms/solarthing

Throw better exception for TooManyRequests for solcast

retrodaredevil opened this issue · 0 comments

This isn't a bug report, just a way to document the fact that we should get a better exception for this:

Oct 29 23:27:56 nasplex run.sh[1703]: 2021-10-29 23:27:56.161  WARN 1711 --- [nio-8080-exec-5] n.g.e.SimpleDataFetcherExceptionHandler  : Exception while fetching data (/data/data) : Error! Code: 429 message: {"response_status":{"error_code":"TooManyRequests","message":"You have exceeded your free daily limit.","errors":[]}}
Oct 29 23:27:56 nasplex run.sh[1703]: java.io.IOException: Error! Code: 429 message: {"response_status":{"error_code":"TooManyRequests","message":"You have exceeded your free daily limit.","errors":[]}}
Oct 29 23:27:56 nasplex run.sh[1703]:         at me.retrodaredevil.solarthing.solcast.rooftop.EstimatedActualRetriever$1.createException(EstimatedActualRetriever.java:45) ~[serviceapi-0.0.1-SNAPSHOT.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at me.retrodaredevil.solarthing.solcast.rooftop.EstimatedActualRetriever$1.retrieveForecast(EstimatedActualRetriever.java:39) ~[serviceapi-0.0.1-SNAPSHOT.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at me.retrodaredevil.solarthing.solcast.rooftop.EstimatedActualCache.updateFutureForecastsAndEstimatedActuals(EstimatedActualCache.java:101) ~[serviceapi-0.0.1-SNAPSHOT.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at me.retrodaredevil.solarthing.solcast.rooftop.EstimatedActualCache.getEstimatedActuals(EstimatedActualCache.java:56) ~[serviceapi-0.0.1-SNAPSHOT.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at me.retrodaredevil.solarthing.rest.graphql.service.SolarThingGraphQLSolcastService$SolarThingSolcastDayQuery.queryEnergyEstimate(SolarThingGraphQLSolcastService.java:178) ~[classes!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at jdk.internal.reflect.GeneratedMethodAccessor80.invoke(Unknown Source) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at io.leangen.graphql.metadata.execution.MethodInvoker.execute(MethodInvoker.java:26) ~[spqr-0.11.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at io.leangen.graphql.metadata.Resolver.resolve(Resolver.java:102) ~[spqr-0.11.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at io.leangen.graphql.execution.OperationExecutor.lambda$execute$1(OperationExecutor.java:93) ~[spqr-0.11.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at io.leangen.graphql.execution.OperationExecutor.execute(OperationExecutor.java:103) ~[spqr-0.11.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at io.leangen.graphql.execution.OperationExecutor.execute(OperationExecutor.java:99) ~[spqr-0.11.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at io.leangen.graphql.execution.OperationExecutor.execute(OperationExecutor.java:58) ~[spqr-0.11.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:270) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:203) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:60) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.execution.ExecutionStrategy.completeValueForObject(ExecutionStrategy.java:646) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:438) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.execution.ExecutionStrategy.completeField(ExecutionStrategy.java:390) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.execution.ExecutionStrategy.lambda$resolveFieldWithInfo$1(ExecutionStrategy.java:205) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:680) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2094) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:204) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:60) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.execution.Execution.executeOperation(Execution.java:165) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.execution.Execution.execute(Execution.java:104) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.GraphQL.execute(GraphQL.java:557) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:482) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.GraphQL.executeAsync(GraphQL.java:446) ~[graphql-java-16.2.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.spring.web.servlet.components.DefaultGraphQLInvocation.invoke(DefaultGraphQLInvocation.java:41) ~[graphql-java-spring-webmvc-2.0.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.spring.web.servlet.components.GraphQLController.executeRequest(GraphQLController.java:150) ~[graphql-java-spring-webmvc-2.0.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at graphql.spring.web.servlet.components.GraphQLController.graphqlPOST(GraphQLController.java:84) ~[graphql-java-spring-webmvc-2.0.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at jdk.internal.reflect.GeneratedMethodAccessor62.invoke(Unknown Source) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) ~[spring-web-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) ~[spring-web-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at javax.servlet.http.HttpServlet.service(HttpServlet.java:652) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar!/:5.3.8]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.46.jar!/:na]
Oct 29 23:27:56 nasplex run.sh[1703]:         at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]