BlueOS starting in factory version

Blueos automaticly changes to factory version when the power off than restart the raspberry pi 4b blue os version changes automaticly to factory version from blue 1.1.0 beta 16.

I’ve had this happen twice now. I was running BlueOS Master today, but was also running Beta 18 at some point a few weeks back and on two occasions things have stopped working (mainly the Cerulean DVL extension is how I noticed it), and found that I was back on factory from 12 months ago. I’m sorry I don’t know what’s causing it but would love to know.

Hi @erkamtb (and @Matt1),

Sorry for the delay on responding to this.

This is a known issue and we’re working on trying to resolve it, as well as make it easier to work around.

For some context, the BlueOS-core Docker image (which runs most of the BlueOS functionality) gets started and monitored by a service we call “bootstrap”, and it’s not yet possible to update bootstrap (nicely) through BlueOS (the normal BlueOS version updater only updates the core image). If BlueOS (core) somehow dies during operation then its bootstrap’s job to revert to a known working image (currently just the one tagged as factory, which is whatever it was first flashed with) so that it’s at least possible to access the interface.

We made some improvements to bootstrap in BlueOS-1.1.0-beta.20, so installing that or a later release may help with the factory reset problem, but currently the new image would need to be flashed onto the SD card in order to get the new bootstrap version, or bootstrap will need to be updated manually through the Terminal page:

# drop down from blueos-core into the underlying operating system:
# get the running bootstrap container id
CURRENT_BOOTSTRAP_CONTAINER=$(docker ps -aq --filter name=blueos-bootstrap)
# stop the bootstrap container (takes 10 seconds)
# remove the container from local memory
# (the underlying image remains on the system, unused)
# specify the new version to use (e.g. 1.1.0-beta.21, or master)
# start running the new version
# (will automatically download if it's not already available locally)
docker run \
    -t \
    --restart unless-stopped \
    --name blueos-bootstrap \
    --net=host \
    -v /root/.config/blueos/bootstrap:/root/.config/bootstrap \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e BLUEOS_CONFIG_PATH=/root/.config/blueos \
# once running it should start repeatedly printing
# "core is already running, waiting for it to stop..."
# press ctrl-c to return to the terminal, and you're done

Thanks. I’ll give it a try and let you know how it goes. Cheers Matt