Bangle.js 2 Storage Corruption

Posted on
  • For the last about 3 weeks, I've been having the watch stop working correctly, not displaying parts of the clock, or today not receiving notifications. Each time this has happened, I've tried to reboot the watch and every time I get a notification that Storage has been corrupted, and it resets storage, causing me to have to reinstall the few apps I had installed. I am running the current latest firmware 2v12.

    Any suggestions on how to stop this from happening? It's pretty much to the point that I can't trust the watch to get notifications, so I'll need to retire it. :(

  • have you tried a full factory reset ? Worth a try in case something funny is afoot.
    Which clock are you mostly using ? Do you see any errors if connected to the IDE?

  • Have you seen issues since upgrading the firmware to 2v12? I could understand having some issues with earlier firmware but I only released 2v12 than a week ago and it had a fix for this exact problem in.

    If the storage was already corrupted by a previous firmware you might expect it do go back to factory settings once, but after that hopefully 2v12 would be fine.

    I guess you've installed other apps? What if you run the Bangle with just the default apps + what you need for messaging? While obviously not ideal it might help us to narrow down the problem to see if it's a particular app or not.

  • The previous time I had a problem was when I tried to update some apps, and the firmware. I'm not sure I did a reset after updating the firmware that time, but it was about a week when it failed for the third time, and I posted here.
    I'll look at doing a full factory reset as now today, bluetooth seems to no longer be connecting, even after rebooting watch and Pixel 5 phone.
    I've been using LCARS as the watchface, and for other apps, Android app, plus the Weather one to get the weather from GadgetBridge.

  • If you're using Gadgetbridge it's worth going into Discovery and Pairing options from the pairing menu and ensuring Ignore bonded devices isn't set. That can be a big cause of not finding a device to pair to

  • Just happened to me on firmware 2v14

    When the bangle was locked, everything seemed normal, time was accurate.
    When unlocked, the widgets wouldn't show up.
    Rebooted, then the

    Checking storage...
    Storage is corrupt.
    Erasing Storage Area...
    

    message showed up on the next boot

    List of apps

    boot, launch, widlock, setting, health, alarm, files, widbt_notify, widclk, wid_edit, calibration, timecal, weather, messages, android, quicklaunch, qmsched, sched, widslimbat, authentiwatch
    
  • [duplicate post]

  • Happened to me on 2v14 firmware as well yesterday evening. Had to restore from backup.

  • Argh, sorry to hear that. If anyone can find a way to reproduce this then I can look into it, but again it's a really hard one for me to debug when I haven't been able to reproduce here.

  • Also happened to me on 2V14.12 3-4 days ago.

  • I'll keep an eye on potential symptoms and grab some logs over time to see if we can catch something useful.

  • Thanks @m-p{3}!

  • It just happened to my Bangle.js 2 with firmware 2v15.5

    It seemed to happen just when my phone got a new message which Gadgetbridge would have passed on.
    I was testing a modified messages app that saves them to a StorageFile, no idea how large that file had already grown, but if the file was about to roll over, it would have done this:

      let file = require("Storage").open("messages.jsonl"­, "a");
      if (file.getLength()>38000) {
          // create a fresh storage file
          file.erase(); 
          file = require("Storage").open("messages.jsonl"­, "a");
      }
    

    Also a bit weird: when I first noticed the watch didn't respond, I long-pressed the button and it showed the "Loading..." box in black text on white, instead of my configured theme of white on black.

  • I just got this as well. I have @rigrig's Scrolling Messages installed so it's likely this has to do with that.

    What seemed to trigger it for me:

    1. Changed LCD timeout setting from 30s to 5s.
    2. Exit settings
    3. boot0 updates
    4. clock loads.
    5. "light switch"-app tap to wake functionality acting up a bit. The widget not updating when LCD turns off.
    6. Going in to settings.
    7. Toggling/changing settings is not acting as normal, not indicating change or going back when pressing to toggle.
    8. When going back to previous menu page however the setting indicates being toggled/changed.
    9. Exit settings and rebooting
    10. the messages re corrupt storage is displayed.

    I had also been playing with an update to the pomodoro-app.

    EDIT: Bangle.js 2 fw 2v15

  • Interesting, thanks! If this ends up being due to an issue in the StorageFile implementation it might explain why I haven't been able to reproduce any issues using just repeated normal storage writes.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Bangle.js 2 Storage Corruption

Posted by Avatar for Bartok @Bartok

Actions