Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Aug 31, 2025

The error message for global adapter dependencies was confusing and not actionable for users, especially when adapters were completely missing versus having version mismatches. The controller would show the same generic message for both scenarios:

Adapter dependency not fulfilled on any host: required adapter "admin" has wrong version...

This change implements distinct error handling to provide specific, actionable messages based on the actual problem:

Enhanced Error Handling

For missing adapters:

Adapter dependency not fulfilled: required adapter "admin" not found!

For version mismatches:

Adapter dependency not fulfilled on all hosts where adapter is installed: required adapter "admin" has wrong version. Installed "7.2.6", required ">=7.4.10"!

Implementation Details

  • Custom Error Classes: Added AdapterNotFoundError and AdapterVersionMismatchError to distinguish between different failure types
  • Enhanced checkVersion Function: Updated to throw appropriate error types based on the specific dependency issue
  • Smart Error Message Selection: Global dependency handler now provides context-specific messages based on the error type

Example Scenarios

Missing Adapter

When an adapter dependency is not installed at all:

startInstance system.adapter.kecontact.0 Adapter dependency not fulfilled: required adapter "admin" not found!

Version Mismatch in Multihost

An adapter requires admin >= 7.4.10 as a global dependency, but the system has admin 7.2.6 on a slave host:

startInstance system.adapter.kecontact.0 Adapter dependency not fulfilled on all hosts where adapter is installed: required adapter "admin" has wrong version. Installed "7.2.6", required ">=7.4.10"!

Benefits

  • Clear Problem Identification: Users immediately know if they need to install a missing adapter or update an existing one
  • Actionable Guidance: Each message points to the specific action required
  • Multihost Clarity: Version mismatch messages clearly indicate the need to check all hosts
  • Eliminates Confusion: No more ambiguous messages when adapters are completely missing

The implementation uses surgical changes with custom error classes to maintain backward compatibility while providing much clearer user guidance.

Fixes #3037.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Changed "Adapter dependency not fulfilled on any host" to "Global adapter dependency not fulfilled" to make the error message clearer and less confusing. The word "any" in the original message suggested the dependency only needed to be on one host, when in fact global dependencies require all instances to satisfy the version requirement.

Co-authored-by: Apollon77 <11976694+Apollon77@users.noreply.github.com>
@Copilot Copilot AI changed the title [WIP] [bug]: Texting " dependency not fulfilled on any host" Fix confusing global dependency error message Aug 31, 2025
@Copilot Copilot AI requested a review from Apollon77 August 31, 2025 12:30
Copilot finished work on behalf of Apollon77 August 31, 2025 12:30
Changed from "Global adapter dependency not fulfilled" to "Adapter dependency not fulfilled on all hosts where adapter is installed" to provide clearer guidance to users about what they need to check in multihost scenarios.

Based on feedback from @Apollon77, the message now specifically tells users to check all hosts where the adapter is installed, which is the actual requirement for global dependencies.

Co-authored-by: Apollon77 <11976694+Apollon77@users.noreply.github.com>
@Copilot Copilot AI changed the title Fix confusing global dependency error message Fix confusing global dependency error message to be more actionable Aug 31, 2025
Copilot finished work on behalf of Apollon77 August 31, 2025 12:38
@Copilot Copilot AI requested a review from Apollon77 August 31, 2025 12:38
@Apollon77 Apollon77 marked this pull request as ready for review August 31, 2025 12:42
@mcm1957
Copy link
Contributor

mcm1957 commented Aug 31, 2025

lgtm

@foxriver76
Copy link
Collaborator

I still find this message confusing, if the dependency eg ist not installed at all

@mcm1957
Copy link
Contributor

mcm1957 commented Aug 31, 2025

The message will not be displayed if the adapter is not installed at all at a slave.

@foxriver76
Copy link
Collaborator

Will be displayed whenever global dep ist not fulfilled, could be not installed at all but could also be wrong version on some host..

@mcm1957
Copy link
Contributor

mcm1957 commented Sep 1, 2025

This message will not be displayed if i.e. admin 7.0.0 is required,admin 7.x.x is installed on master buet admin is NOT installed on slave.

Message will be displayed if admin 7.x.x is installed on master and admin 6.x.x is installed on slave.

This behavior is desired and ok.

Onle the current message that admin dependency is not fullfilled on ANY host is wrong. In the second example dependency is fullfuöled on ANY host (master) but not on ALL host ( the slave)

@foxriver76
Copy link
Collaborator

And it is displayed if no admin is installed at all and then it becomes a weird message

@mcm1957
Copy link
Contributor

mcm1957 commented Sep 1, 2025

OK - I see
Any better texting suggestion?

Maybe we need two diffrent messages

  • one if the adapter (admin) is not installed at all on any host
  • and a second if admin ist installed but with an incorrect version

Copy link
Contributor

@GermanBluefox GermanBluefox left a comment

Choose a reason for hiding this comment

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

lgtm

@Apollon77
Copy link
Collaborator

Alright then lets split the error message variants

@copilot The error message is still confusing in the case that the global dependency is missing at all. Please adjust checkVersion to throw different error instance types (create them) for not found and version-mismatch cases and then ensure that the two cases have meaningful error messages

Co-authored-by: Apollon77 <11976694+Apollon77@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Sep 26, 2025

Alright then lets split the error message variants

@copilot The error message is still confusing in the case that the global dependency is missing at all. Please adjust checkVersion to throw differ...

I've updated the error handling to provide specific error messages for different scenarios. Created separate error classes (AdapterNotFoundError and AdapterVersionMismatchError) that allow the checkVersion function to distinguish between missing adapters and version mismatches.

Now the error messages are:

  • For missing adapters: "Adapter dependency not fulfilled: required adapter 'X' not found!"
  • For version mismatches: "Adapter dependency not fulfilled on all hosts where adapter is installed: required adapter 'X' has wrong version..."

This makes it much clearer for users to understand whether they need to install a missing adapter or update an existing one to meet version requirements.

Commit: 51c56c0

@Copilot Copilot AI changed the title Fix confusing global dependency error message to be more actionable Split global dependency error messages to distinguish missing adapters from version mismatches Sep 26, 2025
@Copilot Copilot AI requested a review from Apollon77 September 26, 2025 08:12
Copilot finished work on behalf of Apollon77 September 26, 2025 08:12
@Apollon77
Copy link
Collaborator

@foxriver76 Please check again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[bug]: Texting " dependency not fulfilled on any host"
5 participants