In my application, the device state change was reported to Google, and the program was working most of the time, but there were a few users whose devices reported their status and would throw [NOT_FOUND: Requested Entity was not found]. According to the error message, as if the device was not found (I'm not sure) ? Since I didn't receive a request from Google to unbind, I reported the device status as usual. And these devices can execute Query and Control instructions correctly.
What was the cause of the error? How do I fix it?
Caused by: io.grpc.StatusRuntimeException: NOT_FOUND: Requested entity was not found.
at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:233) ~[grpc-stub-1.15.1.jar:1.15.1]
at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:214) ~[grpc-stub-1.15.1.jar:1.15.1]
at io.grpc.stub.ClientCalls.blockingUnaryCall$original$uyr4MtQf(ClientCalls.java:139) ~[grpc-stub-1.15.1.jar:1.15.1]
at io.grpc.stub.ClientCalls.blockingUnaryCall$original$uyr4MtQf$accessor$XhDmMxbU(ClientCalls.java) ~[grpc-stub-1.15.1.jar:1.15.1]
at io.grpc.stub.ClientCalls$auxiliary$TBZXSM5e.call(Unknown Source) ~[grpc-stub-1.15.1.jar:1.15.1]
at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.StaticMethodsInter.intercept(StaticMethodsInter.java:86) ~[skywalking-agent.jar:6.3.0]
at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java) ~[grpc-stub-1.15.1.jar:1.15.1]
at com.google.home.graph.v1.HomeGraphApiServiceGrpc$HomeGraphApiServiceBlockingStub.reportStateAndNotification(HomeGraphApiServiceGrpc.java:425) ~[actions-on-google-1.8.0.jar:?]
I used the method SmartHomeApp.reportState in actions-on-google-1.5.0.jar to reported the status.
/**
* <pre>
* Reports device state and optionally sends device notifications. Called by
* an agent when the device state of a third-party changes or the agent wants
* to send a notification about the device.
* This method updates a predefined set of States for a device, which all
* devices have (for example a light will have OnOff, Color, Brightness).
* A new State may not be created and an INVALID_ARGUMENT code will be thrown
* if so. It also optionally takes in a list of Notifications that may be
* created, which are associated to this State change.
* Third-party user's identity is passed in as agent_user_id.
* Agent is identified by the JWT signed by the partner's service account.
* </pre>
*/
public com.google.home.graph.v1.HomeGraphApiServiceProto.ReportStateAndNotificationResponse reportStateAndNotification(com.google.home.graph.v1.HomeGraphApiServiceProto.ReportStateAndNotificationRequest request) {
return blockingUnaryCall(
getChannel(), METHOD_REPORT_STATE_AND_NOTIFICATION, getCallOptions(), request);
}
In my application, the device state change was reported to Google, and the program was working most of the time, but there were a few users whose devices reported their status and would throw [NOT_FOUND: Requested Entity was not found]. According to the error message, as if the device was not found (I'm not sure) ? Since I didn't receive a request from Google to unbind, I reported the device status as usual. And these devices can execute Query and Control instructions correctly.
What was the cause of the error? How do I fix it?
I used the method
SmartHomeApp.reportState
in actions-on-google-1.5.0.jar to reported the status.