🐛 [Bug] OneDev returns HTTP 500 instead of HTTP 401 on expired/invalid HTTPS Git credentials #2887
roy opened 5 days ago

Description When attempting to execute Git operations over HTTPS (e.g., git ls-remote) with expired or outdated credentials, OneDev responds with an HTTP 500 Internal Server Error rather than a standard HTTP 401 Unauthorized.

Steps to Reproduce Update your OneDev account password (or invalidate an active personal access token).

Keep the old password/credentials saved in the local Git credential manager.

Run a Git command against any internal repository over HTTPS:

Bash git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks ls-remote https:////.git Actual Behavior Git returns a server error response:

Plaintext fatal: unable to access 'https:////.git/': The requested URL returned error: 500 Expected Behavior OneDev should return an HTTP 401 Unauthorized error.

Why this matters: Returning 401 allows Git clients and GUIs (like SourceTree, VS Code, GitKraken, etc.) to recognize an authentication failure and prompt the user to re-enter their credentials. An HTTP 500 tricks clients into treating it as a server-side outage rather than a credential issue.

Environment Info Service: OneDev Server (HTTPS Transport)

Resolution Confirmed: Clearing the local credential manager and updating the stored password resolved the error immediately.

  • OneDev commented 2 days ago

    State changed as build OD-7846 is successful

  • OneDev changed state to 'Closed' 2 days ago
    Previous Value Current Value
    Open
    Closed
1/1
Type
Bug
Priority
Minor
Assignee
Affected Versions
16.8
Labels
No labels
Issue Votes (0)
Watchers (2)
Reference
OD-2887
Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover