Device doesn't show up in balenaCloud anymore

This one is a first for me. I’ve been able to connect my device and see it from the dashboard many times now and I can see it’s connected to my phone’s hotspot, however it doesn’t actually appear in the balenaCloud dashboard. I’ve even flashed the SD with the original balenaOS but still no luck. The LED “ACT” is blinking 4 times and then pauses as described here:

https://www.balena.io/docs/faq/troubleshooting/troubleshooting/#error-notifications

Hi there,

Just to clarify, are you saying that you have connected in this manner (device -> hotspot using this cell phone -> balenaCloud) many times?

As you have noted, that pattern typically indicates that the device is unable to connect to the internet. Do you have another device you can use (like a tablet or a laptop) to confirm the hotspot is working as expected (has data, not getting caught in a captive portal, etc)?

It seems as though you can’t use the same config.json file if you still have a device that used it previously and hasn’t been deleted from your fleet. Deleting the inactive device fixed the issue. Otherwise, you can add a new device and just download the config for it.

@kingston Yup thats correct, out of interest did you pull the config.json from the inactive device and insert it into the other, or did you do it some other way. The reason I ask is because when the device first connects to to the cloud, it exchanges its provisioning API key (in the config.json) with a device specific API key and writes that into the config.json. From then on all actions on that device are only allowed via that device specific API key. So if you tried to used the provisioning API key with the same UUID, i think it wouldn’t work well. Until you delete the old device and it deletes the device specific API key on the server side. Hope that makes sense :slight_smile:

Yep @shaunmulligan! That makes perfect sense and explains where I was running into problems. I had downloaded just one config.json file for the application and was just reusing it when I flashed a new device. I had trouble getting wifi-connect to work and when it didn’t work I’d have to start over and reflash the device so to save some time I reused the config file. For awhile I was good about deleting old devices in the dashboard and had assumed that each device I “added” would connect to the dashboard and create it’s own unique API after connecting with the dashboard but my assumption was wrong.

So the lesson is if you’re going to reuse a config file, make sure no other device, not even an inactive one, had previously used that same config.json file and is STILL in your application on your balena dashboard.

I think for a noob like myself this is an easy mistake to make and easily overlooked so I hope this helps someone.

Hi @kingston , the downloaded config file (from the advanced section of the download modal) should indeed allow you to create 1000s of devices without ever having to delete any. The only time you would get into trouble is if you pull a config.json file off of a device that had already provisioned to the cloud done the key exchange. That config.json might struggle to connect as a new device.

But from what you describe, it seems you are trying to just use the config.json you downloaded from the dashboard, and that should definitely NOT require deleting any devices, you should be able to use the config in 1000s of OS images and have no problem. If you are having a problem, then there is something else fishy going on and we would love to figure it out.

Well then that is odd. I was on a time crunch and ended up deleting the application and then pushing to balena master on a new application which solved the problem. I’m not done with you guys yet! :wink: so if the problem arises again I’ll post back on here and see if we can recreate it.

I know this thread is old but seeing same issue with some of our iot-gate-imx8 based devices not visible on dashboard. We re-use config.json downloaded from fleet dashboard (so no uuid conflict) and use it to flash multiple boards. One thing I notice is config.json has ‘apiKey’ which is different if I download new config.json so un-sure if sharing apiKey is causing some conflict here and should not be shared?