home-assistant / home-assistant/iOS

Pull-to-refresh leaves a fixed gap at top of dashboard

Open
#5,432 1 comment 2 reactions 0 assignees View on GitHub
bug ios
Dominant language
Swift
Stars
2.4k
Forks
520
Avg merge
7h 27m
Merged PRs (30d)
264

Description

Model: iPhone 16
iOS: 26.6
App: 2026.7.4
Core: 2026.8.2

Describe the bug
Pull-to-refresh on any dashboard leaves a fixed empty gap at the very top
of the view. The UIRefreshControl / WKWebView contentInset does not reset
after the refresh completes. The offset region intercepts touches, so the
tiles/entities below it become unclickable until the app is force-quit.

100% reproducible on every pull-to-refresh.

To Reproduce
1. Open any dashboard (also reproduced on a fresh vanilla "Sections"
dashboard, core tile cards only, default "Home Assistant" theme).
2. Pull down to refresh.
3. A blank gap remains at the top.

https://github.com/user-attachments/assets/e1e03bed-9631-4f0f-89ae-70e6f998f899

Isolation already performed
- Reproducible on EVERY pull-to-refresh (not intermittent).
- Only in the Companion App; NOT reproducible in mobile Safari.
- Reproducible when connecting directly to HA over plain HTTP, with NO
reverse proxy in path (no NPM, no Cloudflare Tunnel, no mTLS) -> rules
out any network/proxy/TLS cause.
- Persists after: reinstall, Reset frontend cache, other themes,
Kiosk mode disabled, and on brand-new vanilla dashboards.

Related but separate: #3879 (stuck "Reconnecting", client-side) — pull-to-
refresh is the only recovery for that, which makes THIS gap bug worse.

Screen recording attached.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the issue in the Companion App on an iPhone 16, then inspect the pull-to-refresh handling around UIRefreshControl and the WKWebView contentInset. The fix is complete when the top gap is removed after refresh and dashboard tiles remain clickable; verify this on a vanilla dashboard and the reported dashboard variants.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
mobile-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.