home-assistant / home-assistant/iOS
Custom Widget tap behavior regression after 2026.9 update: Default stops working and Toggle does not correctly toggle cover entities
- Dominant language
- Swift
- Stars
- 2.4k
- Forks
- 520
- Avg merge
- 7h 27m
- Merged PRs (30d)
- 264
Description
iOS device model, version and app version
Model Name: iPhone 13 Pro Max
Software Version: iOS 27.0
Home Assistant Companion App: latest App Store version / 2026.9.x
Home Assistant Core Version
Home Assistant Core: 2026.5.4
Home Assistant OS installation
Describe the bug
After the recent Home Assistant Companion App update, existing Custom Widget buttons no longer behave as they did before.
Before the update, my widget buttons used the Default tap behavior and worked correctly without any custom action configuration.
For cover entities, repeatedly tapping the same widget button produced the expected native cover toggle behavior:
1. Open
2. Stop while opening
3. Close
4. Stop while closing
5. Open again
After the recent app update, buttons configured with Default stopped responding.
Changing the tap behavior from Default to Toggle makes the widget respond again, but cover entities no longer behave correctly.
With Toggle, my cover button now only closes the cover when it is open. While the cover is closing, tapping again does not stop it. After it reaches the closed position, further taps do not open it again.
The Home Assistant entity itself and its available actions are working correctly.
If I manually configure the widget as:
* Tap behavior: Execute Action
* Action: cover.toggle
* Action data:
{"entity_id":"cover.cortina_1"}
the expected open → stop → close → stop → open behavior works again.
Therefore the problem appears to be specifically with the new Custom Widget Default / Toggle tap behavior, not with the cover entity or cover.toggle action itself.
This is particularly problematic because I have many existing widget buttons. They previously worked using Default behavior, and manually converting every button to Execute Action and entering its entity ID as JSON is not a practical migration path.
To Reproduce
1. Create or use an existing Custom Widget containing a cover entity.
2. Set the tap behavior / icon tap behavior to Default.
3. Tap the widget after updating to the current 2026.9.x Companion App.
4. The widget may no longer execute the action.
5. Change the behavior to Toggle.
6. Open the cover and tap the widget.
7. The cover closes.
8. Tap again while the cover is moving.
9. The cover does not stop.
10. Once closed, tap again.
11. The cover does not reopen.
12. Configure the same widget manually with Execute Action → cover.toggle and pass the entity ID in Action Data.
13. The expected toggle/stop behavior works correctly.
Expected behavior
Existing widgets using Default should continue to work after an app update without requiring every widget item to be manually reconfigured.
For a cover entity, Toggle should perform the equivalent of cover.toggle, including stopping the cover when it is currently opening or closing.
Existing widget configurations should remain backward compatible.
Actual behavior
* Default behavior stopped working after the update.
* Changing to Toggle makes the button respond but does not reproduce cover.toggle behavior.
* Explicitly configuring Execute Action → cover.toggle works correctly.
* Fixing this manually would require editing every existing widget button individually.
Additional context
The issue appeared immediately after the recent Companion App update.
The 2026.9.1 release notes mention a change to widgets where entity icon colors, tap behaviors and tile icon actions were changed to match the frontend. The regression may be related to that change.
I can provide screenshots of the Custom Widget configuration showing:
* Default / Toggle / Execute Action options
* cover.toggle available in the action selector
* Action Data JSON configuration
**iOS device model, version and app version**
Model Name:
Software Version:
App version:
**Home Assistant Core Version**
**Describe the bug**
**To Reproduce**
**Expected behavior**
**Screenshots**
**Additional context**
Contributor guide
Research direction
Reproduce the regression in a Custom Widget containing a cover entity, comparing Default and Toggle tap behavior with an explicit cover.toggle action using the reported entity data. Done means existing Default widgets respond again and Toggle matches cover.toggle, including open, stop, close, stop, and reopen behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100