Troubleshooting¶
Enable debug logging first¶
Neither logger records credentials or tokens.
"Reconfigure NHS Give Blood" keeps appearing¶
Most likely: your password changed. Check it works in the app, then reconfigure.
Also possible: NHSBT invalidated the refresh token and the stored password is stale.
If it happens during a known NHSBT outage, that's a bug. Transient failures are supposed to retry silently — the integration classifies a 5xx or 429 from the auth service as transient rather than a credential problem, precisely to avoid this. Please open an issue with diagnostics.
Everything is unavailable¶
The last update failed.
- Check
binary_sensor.nhs_give_blood_booking_system_problem - Check https://my.blood.co.uk in a browser
- Look for
Could not reach the NHS Give Blood APIin the log
During an outage the integration backs off to 4-hourly polls and restores your configured interval as soon as a poll succeeds. No action is needed.
To retry immediately: Settings → Devices & services → NHS Give Blood → ⋮ → Reload.
Some sensors are unknown but others work¶
A supplementary endpoint failed while the main account read succeeded — the integration degrades rather than blanking everything.
Enable binary_sensor.nhs_give_blood_data_degraded; its degraded_endpoints attribute names which one.
| Degraded endpoint | Affected entities |
|---|---|
messages |
Donor messages |
features |
(none currently surfaced) |
failover |
Booking system problem |
donations |
Last donation, donations recorded |
appointments |
Falls back to the copy in the account payload |
last_donation and donations_recorded are unknown¶
Either Fetch donation history is off in the options, or the account has no recorded donations.
donations_recorded looks too low¶
It is a lower bound. The API truncates long histories and reports history_truncated: true in the
attributes. Use sensor.nhs_give_blood_donation_credits for your real lifetime total.
Eligibility dates look wrong¶
Check which sensor you are reading:
| Sensor | Meaning |
|---|---|
eligible_from |
When you can next donate — clinical deferral only |
can_book_from |
When you can next book — also accounts for booking windows and existing appointments |
They routinely differ by weeks. This is the API's behaviour, not the integration's.
The calendar is empty but I have an appointment booked¶
- Check
sensor.nhs_give_blood_upcoming_appointments— if it is0, the API is not returning the appointment - Check it appears in the NHS Give Blood app
- Reload the integration
The API only exposes future appointments, so a calendar query for a past range legitimately returns nothing.
Reauthentication rejected with "different donor account"¶
Those credentials belong to another account. Add it as a separate integration entry.
This is deliberate: reusing the existing entry would keep every entity ID and all its history while silently repointing them at a different person.
already_configured when adding the integration¶
That donor account is already set up. Accounts are keyed by donor ID rather than email address, so changing your email in the app does not let you add it twice.
Distances are in kilometres and I expected miles¶
The API reports distances without a unit; the app renders them as miles, so that is what the integration declares. Home Assistant then converts to your instance's unit system.
To change it: Settings → System → General → Unit system. Or override per entity via the entity's settings.
Attributes disappear after a restart¶
If you see this, please report it — it is the signature of Home Assistant's recorder rejecting an oversized attribute payload, and the integration is built to stay under that limit. Include the entity ID and its attributes.
Setup hangs or times out¶
The API can be slow under load. Setup allows 30 seconds per request with up to three retries on transient statuses. If it consistently fails:
- Confirm you can sign in at https://my.blood.co.uk
- Check whether your network blocks the host
- Try again in a few minutes — NHSBT applies rate limits
Still stuck¶
Open an issue with:
- Home Assistant version
- Integration version (Settings → Devices & services → NHS Give Blood)
- The diagnostics download — please read it first; see Privacy
- Relevant debug log lines
Or check the library's troubleshooting notes if the problem looks like an API-level one.