Bump pyiCloud to 2.6.1#172538
Conversation
|
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
|
Hey there @Quentame, @nzapponi, mind taking a look at this pull request as it has been labeled with an integration ( Code owner commandsCode owners of
|
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Bumps the pyicloud dependency from 2.4.1 to 2.6.1 for the iCloud integration.
Changes:
- Updated
pyicloudversion in the iCloud component manifest. - Updated
pyicloudversion inrequirements_all.txt.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| homeassistant/components/icloud/manifest.json | Bumps pyicloud requirement to 2.6.1 |
| requirements_all.txt | Syncs the global requirements file with the new pyicloud version |
|
Dependency conflict identified — blocking on upstream pyicloud fix Testing locally revealed that pyicloud 2.6.1 requires Root cause of the conflict: The Upstream fix in progress: timlaing/pyicloud#265 ("Roll back protobuf to 6.32.0") is open and would make the next pyicloud release compatible with HA's existing protobuf pin. Once that merges and a new patch release is tagged, this PR can be updated to that version. Live test result: Manually installing pyicloud 2.6.1 + protobuf 7.35.0 in a running HA 2026.5.x HAOS instance showed no regressions across all 25 protobuf-dependent integrations (ESPHome, Chromecast, MQTT, Google integrations, etc.). So if HA's protobuf constraint were relaxed (bdraco's draft PR #168811 does this), this PR would work as-is. Options for maintainers:
Marking as blocked on upstream. |
|
waiting-for-upstream label needed for whatever the new version will be after pyicloud PR #265 merging. |
|
@aram535 - updated version of PyiCloud released to fix this issue. Version: 2.6.2 |
|
When will this be fixed? Has not worked for 2 months! |
|
Could you update to the latest version ? https://github.com/timlaing/pyicloud/releases timlaing/pyicloud#265 has been merged and released on 2.6.2 And test if the integration is working. |
| "iot_class": "cloud_polling", | ||
| "loggers": ["keyrings.alt", "pyicloud"], | ||
| "requirements": ["pyicloud==2.4.1"] | ||
| "requirements": ["pyicloud==2.6.1"] |
There was a problem hiding this comment.
| "requirements": ["pyicloud==2.6.1"] | |
| "requirements": ["pyicloud==2.6.4"] |
|
|
||
| # homeassistant.components.icloud | ||
| pyicloud==2.4.1 | ||
| pyicloud==2.6.1 |
There was a problem hiding this comment.
| pyicloud==2.6.1 | |
| pyicloud==2.6.4 |
Breaking change
Proposed change
Bumps
pyicloudfrom 2.4.1 to 2.6.1 to fix the iCloud 2FA verification code never arriving on trusted Apple devices.Root cause: After Apple required SRP-6a authentication (adopted in HA 2025.10), the library completed the SRP handshake and correctly detected that 2FA was required (
PyiCloud2FARequiredException), but never made the subsequentGET /appleauth/auth/verify/trusteddevicerequest that explicitly triggers Apple to push the 6-digit code to the user's trusted devices. Apple does not auto-push verification codes for API (non-browser) sessions — the push must be explicitly requested. The result: HA would display the "Enter your verification code" prompt, but the code never arrived on the user's iPhone/iPad/Mac.What changed in pyicloud:
sessionUUIDtoflowid, causing a Pydantic validation crash in the bridge flow._request_2fa_code()— called automatically after SRP auth completes, it issuesGET /appleauth/auth/verify/trusteddeviceto explicitly trigger the push notification, with SMS fallback viaPUT /appleauth/auth/verify/phone. This is the critical fix for the missing 2FA delivery.No changes to HA's
config_flow.pyare required — the fix is entirely inside the library. The_request_2fa_code()call is made internally duringPyiCloudService.__init__(), so by the time HA checksapi.requires_2faand shows the "Enter code" form, the push has already been dispatched to the user's devices.Changelog diff: timlaing/pyicloud@2.4.1...2.6.1
Type of change
Additional information
Checklist
ruff format homeassistant tests)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest.requirements_all.txt.Updated by running
python3 -m script.gen_requirements_all.To help with the load of incoming pull requests: