Skip to content

Commit 5c851de

Browse files
committed
Fix Options 500: async_get_options_flow must be synchronous
- HA calls async_get_options_flow directly (no await); an async def returned a coroutine -> AttributeError 500 when opening entry Options Release 0.4.4
1 parent 3684da7 commit 5c851de

3 files changed

Lines changed: 16 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.4.4] - 2026-09-08
11+
12+
### Fixed
13+
- **Opening entry Options returned "500 / Config flow could not be
14+
loaded"**: `async_get_options_flow` was declared `async def`, but Home
15+
Assistant invokes it synchronously and expects the flow instance; an
16+
un-awaited coroutine caused the 500. The hook is now a plain
17+
(non-async) static method, so the Users & measurements menu opens.
18+
1019
## [0.4.3] - 2026-09-08
1120

1221
### Fixed
@@ -149,7 +158,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
149158
- `realme_scale_measurement` HA event and `realme_scale.reconnect` service.
150159
- Unit tests + hardware-free protocol smoke test (`tests/`).
151160

152-
[Unreleased]: https://github.com/kapilmahawar/realme-scale-ha/compare/v0.4.3...HEAD
161+
[Unreleased]: https://github.com/kapilmahawar/realme-scale-ha/compare/v0.4.4...HEAD
162+
[0.4.4]: https://github.com/kapilmahawar/realme-scale-ha/compare/v0.4.3...v0.4.4
153163
[0.4.3]: https://github.com/kapilmahawar/realme-scale-ha/compare/v0.4.2...v0.4.3
154164
[0.4.2]: https://github.com/kapilmahawar/realme-scale-ha/compare/v0.4.1...v0.4.2
155165
[0.4.1]: https://github.com/kapilmahawar/realme-scale-ha/compare/v0.4.0...v0.4.1

custom_components/realme_scale/config_flow.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -366,13 +366,14 @@ async def async_step_profile(
366366
)
367367

368368
@staticmethod
369-
async def async_get_options_flow(
369+
def async_get_options_flow(
370370
config_entry: ConfigEntry,
371371
) -> RealmeScaleOptionsFlow:
372372
"""Return the options flow that manages users & measurements.
373373
374-
Without this hook Home Assistant does not expose the entry's
375-
"Options" menu at all.
374+
Note: despite the ``async_`` prefix this method is *synchronous* —
375+
Home Assistant calls it directly and expects the flow instance, not a
376+
coroutine (an async def here produces a 500 on opening Options).
376377
"""
377378
return RealmeScaleOptionsFlow(config_entry)
378379

custom_components/realme_scale/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"issue_tracker": "https://github.com/kapilmahawar/realme-scale-ha/issues",
99
"iot_class": "local_push",
1010
"integration_type": "device",
11-
"version": "0.4.3",
11+
"version": "0.4.4",
1212
"bluetooth": [
1313
{
1414
"service_uuid": "0000a602-0000-1000-8000-00805f9b34fb"

0 commit comments

Comments
 (0)