This page holds no explanations of its own. It exists because the explanations are
spread across six pages under six different headings, and a reader at midnight does not
know which one owns their symptom.
| What you see |
Where the answer is |
| Saved the server settings, and no device ever registers |
⚠️ The app has to be restarted — the connection is built at launch. First sync |
| The app reports a network error that is not a network error |
The certificate installed but was never trusted. TLS and mutual TLS |
| It worked, and one day quietly stopped |
A certificate expired. Expiry is a silent failure |
| The token is refused, and the body says it was revoked |
It was. Revoking |
503 on every call, with a healthy-looking server |
The revocation deny-list is unreachable. Authentication |
| Uploads are rejected as too large |
Chunking. Ingest failure modes |
| What you see |
Where the answer is |
| Steps roughly doubled against the Health app |
The server sums every source; HealthKit’s merged statistics exist only on the phone. First sync |
| A figure that will not update |
It is cached for 60 seconds and dropped when a batch lands. Reading data |
| An observation resting on very little |
Every rule states what it needs first. Reading data |
A Home Assistant sensor showing unknown |
That is the design — a missing measurement is never a zero. Home Assistant |
| Sensors that went stale without anything saying so |
The freshness sensor is the alarm. The alert that matters |
Support — and for the server, an issue in the repository is usually
faster, because the logs can be pasted in.