version in the manifest is newer than the running firmware:
# Check latest version
curl https://updates.sensyte.io/version.json
# Response:
# …
One command, from this directory. It runs a full idf.py build, copies all
five flash artifacts, computes hashes, and regenerates both manifests.
.\deploy.ps1 -Version "X.Y.Z" -Notes "What changed"
It refuses to publish a build whose artifacts came from different idf.py
runs — a stale bootloader shipped with a fresh app produces a board that boots wrong
rather than an error, so the check is a hard failure. See
README.md for details.