Connecting an account with an unreachable Schulnetz URL shows the user this, in the app:
Login failed: [Errno -2] Name or service not known
That is a Python DNS resolution error from SchulwareAPI, passed straight through the plugin into the message the app renders. Errno -2 means nothing to a student, and the actionable part - that the URL could not be resolved, so it is probably mistyped - is not stated.
The same channel carries other upstream text unchanged. A real MFA failure arrives as:
MFA required: MFA required but no TOTP secret/code was provided.. Provide a TOTP secret/code or re-authenticate interactively.
with the heading duplicated into the sentence and a double full stop, which suggests a prefix is being concatenated onto a message that already contains it.
The app now renders whatever message the plugin returns (schulydev/Schuly#455), so the wording here is what the user reads. The common failures worth naming are: host not resolvable, host unreachable or timed out, credentials rejected, and MFA required. Anything genuinely unexpected can stay generic, with the technical detail logged rather than shown.
Connecting an account with an unreachable Schulnetz URL shows the user this, in the app:
That is a Python DNS resolution error from SchulwareAPI, passed straight through the plugin into the
messagethe app renders.Errno -2means nothing to a student, and the actionable part - that the URL could not be resolved, so it is probably mistyped - is not stated.The same channel carries other upstream text unchanged. A real MFA failure arrives as:
with the heading duplicated into the sentence and a double full stop, which suggests a prefix is being concatenated onto a message that already contains it.
The app now renders whatever
messagethe plugin returns (schulydev/Schuly#455), so the wording here is what the user reads. The common failures worth naming are: host not resolvable, host unreachable or timed out, credentials rejected, and MFA required. Anything genuinely unexpected can stay generic, with the technical detail logged rather than shown.