Could "object does not exists" come from a sql query that returned zero results?


I have the following error when I try to go to device activation via the GUI:
(request URL: https://xx.xx.xx.xx:8080/api/devices/0101010101010101/activation)

{“error”:“object does not exist”,“code”:5}

The error message in the app-server log:

time=“2018-04-17T10:38:55Z” level=info msg=“finished unary call with code NotFound” error=“rpc error: code = NotFound desc = object does not exist” grpc.code=NotFound grpc.method=GetActivation grpc.service=api.Device grpc.start_time=“2018-04-17T10:38:55Z” grpc.time_ms=9.532 peer.address=“” span.kind=server system=grpc

The statement before that was executed:

time=“2018-04-17T10:38:55Z” level=debug msg=“sql query executed” args="[[1 1 1 1 1 1 1 1]]" duration=2.107424ms query="\n select *\n from device_activation\n where\n dev_eui = $1\n order by\n created_at desc\n limit 1"

The database:

dev_eui | created_at | updated_a | application_id | device_profile_id | name | desiption | last_seen_at | device_status_battery | device_status_margin

\x0101010101010101 | 2018-04-17 10:37:05.209145+00 | 2018-04-17 10:37:05.209145
+00 | 1 | 6089487c-8a7e-41f3-a987-315c14ba2973 | dev-3 | dev-3
| | |

It seems that the error code comes from this SQL stmt, could this be the case?. But is it really[1 1 1 1 1 1 1 1] that is used as argument and not \x0101010101010101? Seems like it’s obvious this would return zero results because of the different formats of the two values.

Please note that LoRa App Server will also make a call to LoRa Server to retrieve the activation state from the network-server. That could fails when the device-session has expired with the above error.

Note that: 020304... in HEX translates to []byte{1, 2, 3, 4, ...} in Go (the value of the byte is printed 0…255), so what you see is normal.