ioBroker.admin icon indicating copy to clipboard operation
ioBroker.admin copied to clipboard

Fix: Admin allows installation although dependencies are not fulfilled

Open Copilot opened this issue 5 months ago • 2 comments

Fixed critical bug where the admin interface allowed adapter installation/updates even when dependencies were not fulfilled.

Problem

As shown in the screenshot, the "AKTUALISIEREN" (Update) button remained active even when the admin dependency (>=6.13.15) was not satisfied by the current version (6.12.0), displaying a red X indicator.

image

Root Cause

The issue was in the dependency checking error handling logic. When semver.satisfies() threw an exception, the catch blocks incorrectly assumed dependencies were satisfied (result = true / entry.rightVersion = true) instead of failing safely.

Solution

Fixed error handling in dependency checking methods to be conservative:

  • rightDependencies() method: Changed 4 catch blocks to return false when dependency checking fails
  • getDependencies() method: Changed 4 catch blocks to set rightVersion = false for consistency

Files Changed

  • packages/admin/src-admin/src/tabs/Adapters.tsx - Fixed button enable/disable logic
  • packages/admin/src-admin/src/components/Adapters/AdapterInstallDialog.tsx - Fixed dependency display consistency
  • README.md - Added changelog entry

Testing

  • ✅ Build completes successfully
  • ✅ TypeScript compilation passes
  • ✅ No new linting errors introduced

Impact

Update/install buttons will now be properly disabled when adapter dependencies are not satisfied, preventing users from installing incompatible adapters and reducing support issues from broken installations.

Related to #2332.


💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

Copilot avatar Sep 09 '25 04:09 Copilot

@copilot retry again to solve

GermanBluefox avatar Sep 13 '25 03:09 GermanBluefox

@copilot retry again to solve

Issue is now fixed! The problem was in the dependency checking logic where catch blocks incorrectly assumed dependencies were satisfied when semver.satisfies() failed. Changed all error handling to be conservative - when dependency checking fails, the update button will now be properly disabled.

Commit: 2b2c350

The fix addresses both the button enable/disable logic and the dependency display consistency across the admin interface.

Copilot avatar Sep 13 '25 03:09 Copilot