Skip to content

Handle Oauth2 ImplementationUnavailableError in microbees#166654

Open
wmoss wants to merge 1 commit intohome-assistant:devfrom
wmoss:fix-microbees-config-no-internet
Open

Handle Oauth2 ImplementationUnavailableError in microbees#166654
wmoss wants to merge 1 commit intohome-assistant:devfrom
wmoss:fix-microbees-config-no-internet

Conversation

@wmoss
Copy link
Contributor

@wmoss wmoss commented Mar 26, 2026

Proposed change

As described in much more detail in PR #154579 and this blog post, previously, if there was no internet and the call to fetch cloud services fail, integrations like this one using cloud oauth2 would terminally fail. #154579 introduced config_entry_oauth2_flow.ImplementationUnavailableError and raises it in that specific case. This catches that error and raises ConfigEntryNotReady so that the configuration will be retried when internet is available again.

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

Checklist

  • I understand the code I am submitting and can explain how it works.
  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.
  • Any generated code has been carefully reviewed for correctness and compliance with project standards.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies a diff between library versions and ideally a link to the changelog/release notes is added to the PR description.

To help with the load of incoming pull requests:

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 26, 2026 22:25
@home-assistant
Copy link

Hey there @microBeesTech, mind taking a look at this pull request as it has been labeled with an integration (microBees) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of microBees can trigger bot actions by commenting:

  • @home-assistant close Closes the pull request.
  • @home-assistant rename Awesome new title Renames the pull request.
  • @home-assistant reopen Reopen the pull request.
  • @home-assistant unassign microBees Removes the current integration label and assignees on the pull request, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component, problem in config, problem in device, feature-request) to the pull request.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component, problem in config, problem in device, feature-request) on the pull request.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the microbees integration to handle the new OAuth2 “implementation unavailable” error so entries don’t fail permanently when cloud services can’t be fetched (e.g., no internet), and verifies this behavior with a regression test.

Changes:

  • Catch config_entry_oauth2_flow.ImplementationUnavailableError during setup and raise ConfigEntryNotReady to trigger retry.
  • Add integration exception translation key oauth2_implementation_unavailable wired to the common message.
  • Add a test asserting the config entry moves to SETUP_RETRY when the OAuth implementation cannot be loaded.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
homeassistant/components/microbees/__init__.py Converts OAuth implementation unavailability into ConfigEntryNotReady with translated message.
homeassistant/components/microbees/strings.json Adds exceptions.oauth2_implementation_unavailable translation mapping to the common string.
tests/components/microbees/test_init.py Adds regression test ensuring setup retries on ImplementationUnavailableError.
@epenet epenet changed the title Use error introduced in #154579 in microbees integration Handle Oauth2 ImplementationUnavailableError in microbees Mar 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

2 participants