# Healthchecks: what changed from 3 to 4 - Product: Healthchecks (https://whatsnew.fyi/product/healthchecks) - Vendor: Pēteris Caune - Range: changelog entries numbered after v3.13 up to and including v4.4, stable releases only - Entries below: 6 releases (newest first) - Resolved: 3 is v3.13 and 4 is v4.4, the newest stable release of each major we track - Carrying security changes: 1 · CVEs mentioned: 0 · Mentioning breaking changes: 0 · Removing or deprecating something: 2 - Page: https://whatsnew.fyi/product/healthchecks/compare/3...4 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## What changed (47 changes, grouped by kind) ### Added #### v4.3 (2026-07-14) - Add a note about unset ping key in the check details page - Let users specify alert priorities in the "Add Gotify" form - Add ability to edit existing Gotify integrations - Implement Markdown formatting in Ntfy notifications - Add rate-limiting by email in the /accounts/signup view #### v4.1 (2026-03-20) - Add a one-line summary at the top of monthly/weekly/daily reports #### v4.0 (2026-01-22) - Add data migration to update legacy timezones to current canonical timezones ### Changed #### v4.4 (2026-08-31) - Send flapping notices to all team members instead of just the owner - Upgrade to Django 6.1 #### v4.3 (2026-07-14) - Send "Monthly Phone/SMS/WA Limit Reached" notice to all team members instead of just owner - Include notification text in the "Monthly Phone/SMS/WA Limit Reached" notice - Switch from Selectize to Tom Select for dropdown controls - Update alert templates to report downtime duration - Switch to Argon2 as the default hasher for passwords and login tokens - Optimize DB queries for team membership lookups and for the "Get Pings" API call #### v4.2 (2026-04-28) - Update the email alert template to cut the beginning of the last ping body - Update the email integration to attach email pings as .eml attachments #### v4.0 (2026-01-22) - Upgrade to Django 6.0 - Update the Matrix integration to use Matrix v3 API - Update email alert template to use user's preferred time zone - Update the web UI to use user's preferred timezone instead of browser's timezone - Switch to using multicolor icon font for integration icons ### Fixed #### v4.4 (2026-08-31) - Fix the email integration to sanitize long lines in .eml attachments - Fix race conditions when concurrent requests update the same check - Fix bounce signing code to produce shorter signatures #### v4.3 (2026-07-14) - Fix WebhookValidator to handle input that contains square brackets - Update Check.rename_and_delete() to better handle race conditions - Enforce check limit (times two) when pinging by slug - Fix the "Edit Ntfy" form to preserve selected priorities when the form reloads - Fix the parsing of inbound emails with UTF8 body #### v4.2 (2026-04-28) - Fix the email integration to handle deep attachment stacks in last ping body - Fix check name and tag escaping in the Shell integration #### v4.1.1 (2026-03-25) - Fix sendalerts to avoid crashing on a timed out db connection - Fix the update_timeout view to also kick off nags #### v4.1 (2026-03-20) - Fix a formatting issue in Matrix notification template - Fix emails to never use non-breaking spaces in plain text emails - Fix the Change Email form to warn the user about TOTP 2FA - Fix daily reports to show downtime stats for the previous 2 days instead of months - Fix incorrect Bearer token handling in the Prometheus metrics endpoint - Fix the Clone function to copy the filter_http_body and filter_default_fail fields - Fix the ping handler to reject uppercase letters in slug values #### v4.0 (2026-01-22) - Fix the text version of email report for recently created checks - Fix prepare_durations() to assert ping ordering by id not by created date - Fix the Pause API call and UI action to no-op if the check is already paused ### Removed #### v4.1 (2026-03-20) - Remove team size limits so users on all plans can now invite many team members #### v4.0 (2026-01-22) - Drop support for Python 3.11 and below; minimum required Python version is now 3.12 ### Security #### v4.4 (2026-08-31) - Fix the email verification link to depend on the email address ## Release notes ### v4.4 - Date: 2026-08-31 - Version: v4.4 - Original notes: https://github.com/healthchecks/healthchecks/releases/tag/v4.4 - Permalink: https://whatsnew.fyi/product/healthchecks/releases/v4.4 - **changed** — Send flapping notices to all team members instead of just the owner - **changed** — Upgrade to Django 6.1 - **fixed** — Fix the email integration to sanitize long lines in .eml attachments - **fixed** — Fix race conditions when concurrent requests update the same check - **fixed** — Fix bounce signing code to produce shorter signatures - **security** — Fix the email verification link to depend on the email address Important: this Healthchecks release is using Django 6.1, which has dropped support for PostgreSQL < 15, MySQL < 8.4, MariaDB < 10.11. ###### Improvements - Send flapping notices to all team members (not just the owner) - Upgrade to Django 6.1 ###### Bug Fixes - Fix the email integration to sanitize long lines in .eml attachments - Fix race conditions when concurrent requests update the same check - Fix bounce signing code to produce shorter signatures - Security: fix the email verification link to depend on the email address ### v4.3 - Date: 2026-07-14 - Version: v4.3 - Original notes: https://github.com/healthchecks/healthchecks/releases/tag/v4.3 - Permalink: https://whatsnew.fyi/product/healthchecks/releases/v4.3 - **changed** — Send "Monthly Phone/SMS/WA Limit Reached" notice to all team members instead of just owner - **changed** — Include notification text in the "Monthly Phone/SMS/WA Limit Reached" notice - **added** — Add a note about unset ping key in the check details page - **added** — Let users specify alert priorities in the "Add Gotify" form - **added** — Add ability to edit existing Gotify integrations - **changed** — Switch from Selectize to Tom Select for dropdown controls - **added** — Implement Markdown formatting in Ntfy notifications - **changed** — Update alert templates to report downtime duration - **changed** — Switch to Argon2 as the default hasher for passwords and login tokens - **changed** — Optimize DB queries for team membership lookups and for the "Get Pings" API call - **fixed** — Fix WebhookValidator to handle input that contains square brackets - **fixed** — Update Check.rename_and_delete() to better handle race conditions - **fixed** — Enforce check limit (times two) when pinging by slug - **fixed** — Fix the "Edit Ntfy" form to preserve selected priorities when the form reloads - **fixed** — Fix the parsing of inbound emails with UTF8 body - **added** — Add rate-limiting by email in the /accounts/signup view ###### Improvements - Send "Monthly Phone/SMS/WA Limit Reached" notice to all team members (not just owner) - Include notification text in the "Monthly Phone/SMS/WA Limit Reached" notice - Add a note about unset ping key in the check details page (#1295) - In the "Add Gotify" form, let users specify alert priorities (#990, @BeyondMagic) - Add ability to edit existing Gotify integrations - Switch from Selectize to Tom Select for dropdown controls - Implement Markdown formatting in Ntfy notifications - Update alert templates to report downtime duration (#1309) - Switch to Argon2 as the default hasher for passwords and login tokens - Optimize DB queries for team membership lookups and for the "Get Pings" API call ###### Bug Fixes - Fix WebhookValidator to handle input that contains square brackets - Update Check.rename_and_delete() to better handle race conditions - Enforce check limit (times two) when pinging by slug - Fix the "Edit Ntfy" form to preserve selected priorities when the form reloads - Fix the parsing of inbound emails with UTF8 body (#1311) - Add rate-limiting by email in the /accounts/signup view ### v4.2 - Date: 2026-04-28 - Version: v4.2 - Original notes: https://github.com/healthchecks/healthchecks/releases/tag/v4.2 - Permalink: https://whatsnew.fyi/product/healthchecks/releases/v4.2 - **changed** — Update the email alert template to cut the beginning of the last ping body - **changed** — Update the email integration to attach email pings as .eml attachments - **fixed** — Fix the email integration to handle deep attachment stacks in last ping body - **fixed** — Fix check name and tag escaping in the Shell integration ###### Improvements - Update the email alert template to cut the beginning of the last ping body (#939) - Update the email integration to attach email pings as .eml attachments ###### Bug Fixes - Fix the email integration to handle deep attachment stacks in last ping body - Fix check name and tag escaping in the Shell integration ### v4.1.1 - Date: 2026-03-25 - Version: v4.1.1 - Original notes: https://github.com/healthchecks/healthchecks/releases/tag/v4.1.1 - Permalink: https://whatsnew.fyi/product/healthchecks/releases/v4.1.1 - **fixed** — Fix sendalerts to avoid crashing on a timed out db connection - **fixed** — Fix the update_timeout view to also kick off nags ###### Bug Fixes - Fix sendalerts to avoid crashing on a timed out db connection (#1267) - Fix the update_timeout view to also kick off nags ### v4.1 - Date: 2026-03-20 - Version: v4.1 - Original notes: https://github.com/healthchecks/healthchecks/releases/tag/v4.1 - Permalink: https://whatsnew.fyi/product/healthchecks/releases/v4.1 - **removed** — Remove team size limits so users on all plans can now invite many team members - **added** — Add a one-line summary at the top of monthly/weekly/daily reports - **fixed** — Fix a formatting issue in Matrix notification template - **fixed** — Fix emails to never use non-breaking spaces in plain text emails - **fixed** — Fix the Change Email form to warn the user about TOTP 2FA - **fixed** — Fix daily reports to show downtime stats for the previous 2 days instead of months - **fixed** — Fix incorrect Bearer token handling in the Prometheus metrics endpoint - **fixed** — Fix the Clone function to copy the filter_http_body and filter_default_fail fields - **fixed** — Fix the ping handler to reject uppercase letters in slug values ###### Improvements - Remove team size limits: users on all plans can now invite many team members - Add a one-line summary at the top of monthly/weekly/daily reports ###### Bug Fixes - Fix a formatting issue in Matrix notification template (#1264, @neoscaler) - Fix emails to never use non-breaking spaces in plain text emails - Fix the "Change Email" form to warn the user about TOTP 2FA - Fix daily reports to show downtime stats for the previous 2 days (not months) - Fix incorrect Bearer token handling in the Prometheus metrics endpoint - Fix the "Clone" function to copy the filter_http_body, filter_default_fail fields - Fix the ping handler to reject uppercase letters in slug values (#1271) ### v4.0 - Date: 2026-01-22 - Version: v4.0 - Original notes: https://github.com/healthchecks/healthchecks/releases/tag/v4.0 - Permalink: https://whatsnew.fyi/product/healthchecks/releases/v4.0 - **removed** — Drop support for Python 3.11 and below; minimum required Python version is now 3.12 - **changed** — Upgrade to Django 6.0 - **changed** — Update the Matrix integration to use Matrix v3 API - **changed** — Update email alert template to use user's preferred time zone - **changed** — Update the web UI to use user's preferred timezone instead of browser's timezone - **added** — Add data migration to update legacy timezones to current canonical timezones - **changed** — Switch to using multicolor icon font for integration icons - **fixed** — Fix the text version of email report for recently created checks - **fixed** — Fix prepare_durations() to assert ping ordering by id not by created date - **fixed** — Fix the Pause API call and UI action to no-op if the check is already paused This release drops support of Python 3.11 and below. The minimum required Python version is 3.12. ##### Improvements - Upgrade to Django 6.0 - Update the Matrix integration to use Matrix v3 API (#1244) - Update email alert template to use user's preferred time zone (#1230) - Update the web UI to use user's preferred timezone instead of browser's timezone - Add data migration to update legacy timezones to current canonical timezones (#1250) - Switch to using multicolor icon font for integration icons ###### Bug Fixes - Fix the text version of email report for recently created checks (#1236, @adelton) - Fix prepare_durations() to assert ping ordering by id not by created date - Fix the "Pause" API call and UI action to no-op if the check is already paused