Burn errors
When you click Burn in the tuner, the dash shows a “Saving config…” overlay while it writes to SPIFFS. If the write fails, the overlay flips red and shows one of the messages below.
”Storage write failed”
The atomic SPIFFS write failed — typically because the flash is nearly full or
fragmented. The previous config (.bak) is still in place; the dash will
re-load the old config on the next boot, so you keep what you had.
Recovery:
- Reboot the dash.
- Open
pio device monitorto confirm[BOOT] Readyprints normally. - Try the burn again — transient SPIFFS errors usually resolve.
- If it keeps failing, the SPIFFS partition may be corrupt. Re-flash the
filesystem image:
pio run -t uploadfs.
”Config reload failed”
The write succeeded but the dash couldn’t parse the new file. This means the tuner shipped invalid JSON, or the schema version doesn’t match the firmware.
The dash falls back to the built-in default config and surfaces
SCHEMA_MISMATCH (or similar) in the ErrorBar.
Recovery:
- Refresh the tuner page and re-burn — the tuner reads the current schema
from
canshift-coreon every load. - If the issue persists, re-flash the firmware to the version your tuner
page is configured for. The schema version is logged at boot:
[BOOT] Schema vN.M.
The overlay clears but the dash didn’t reload
If the overlay disappears (success) but the new widgets don’t appear, the likely cause is the page-rebuild trigger missed the reload. Reboot the dash — the new config is on disk and will load on the next boot.
This shouldn’t happen in normal operation; if it does, capture the boot log and open an issue.
OOM during burn
A very large dashboard.json (close to CONFIG_JSON_DOC_DASHBOARD = 16 KB)
plus a fragmented heap can cause the burn to OOM mid-write. Symptoms:
- The overlay shows “Storage write failed”.
[USB]logs containout_of_memoryorparse_error.
Recovery: simplify the dashboard (fewer pages, fewer widgets per page) and re-burn. The 16 KB cap is firmware-side and not user-configurable; the tuner will warn before letting you burn an oversized config.