After being logged out of my Nextcloud desktop client, I encountered a 503 Service Unavailable error when trying to reconnect, despite the server being accessible via browser and mobile apps. After extensive troubleshooting, I discovered the root cause was an expired password–but this was never clearly communicated in the desktop client or error messages. Here are the steps I took to investigate this problem.
Steps I took (and hidden errors)
-
Initial error in Desktop Client
- Popup: “Secure connection to
https://nextcloud-remote-server.comfailed” with options to retry or use HTTP. - No mention of password issues.
- Popup: “Secure connection to
-
Debugging Attempts
- Verified the server:
- Web interface worked fine (no password warnings)
- Certificate valid (DigiCert, not expired)
- Checked logs:
- Desktop clients logs showed
503 Service Unavailablefor WebDAV (/remote.php/dav/files) - No explicit “password expired” message–just generic auth failures.
- Desktop clients logs showed
- Manual WebDAV test:
curl -X PROPFIND -u "user:app_password" https://nextcloud-remote-server.com/remote.php/dav/files/user/- Finally revealed the cause:
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns"> <s:exception>Sabre\DAV\Exception\ServiceUnavailable</s:exception> <s:message>OC/User/LoginException: Password is expired, please use forgot password method to reset</s:message> </d:error>
- Finally revealed the cause:
- Verified the server:
-
Root Cause
- My password had expired due to an admin policy, but:
- No notification in the web UI and I was still able to logout and back in in the web client
- Desktop client masked this behind
Secure connection to server failederror, suggesting a server issue.
- My password had expired due to an admin policy, but:
Suggested Improvements
- Desktop Client
- Detect and display password expiration errors explicitly (e.g., “Your password has expired—reset it in the web interface”).
- Stop hiding auth failures behind
503/401codes.
- Web Interface
- Show visible warnings to users with expired passwords (e.g., banner, email notification).
Question for Discussion:
-
Is there a technical reason password expiration can’t trigger clear client-side warnings?
-
Could we add:
- A “days until expiry” counter in web UI?
- Desktop client notifications before revocation?
-
Should app passwords be exempt from expiration (with admin option)?