Fix: Admin allows installation although dependencies are not fulfilled
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.
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 returnfalsewhen dependency checking fails -
getDependencies()method: Changed 4 catch blocks to setrightVersion = falsefor 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 retry again to solve
@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.