Closed
Description
Version
2.2.1
Operating system
Windows
OS version or distribution
Windows Server 2019
Git hosting provider(s)
Azure DevOps Server (TFS/on-prem)
Other hosting provider
No response
(Azure DevOps only) What format is your remote URL?
None
Can you access the remote repository directly in the browser?
Yes, I can access the repository
Expected behavior
We're using provider = generic and interactive = false with an HTTPS url and Windows Integrated Authentication to an on-premise instance of Azure DevOps Server 2022. This worked without issue using GCM 2.1.2.
Actual behavior
With GCM 2.2.1, git commands generate the following output, but do appear to succeed anyway. Downgrading Git for Windows to switch back to GCM 2.1.2 resolves the issue.
E:\dev\SourceCode> git fetch
fatal: Missing 'username' input argument
fatal: Missing 'username' input argument
Logs
URLs have been sanitized.
E:\dev\SourceCode>git fetch
09:26:25.038018 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
09:26:25.069266 git.c:462 trace: built-in: git fetch
09:26:25.084900 run-command.c:661 trace: run_command: GIT_DIR=.git git remote-https origin https://server.example.com/Project/Software/_git/SourceCode
09:26:25.147396 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:25.147396 git.c:748 trace: exec: git-remote-https origin https://server.example.com/Project/Software/_git/SourceCode
09:26:25.147396 run-command.c:661 trace: run_command: git-remote-https origin https://server.example.com/Project/Software/_git/SourceCode
09:26:25.225524 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:25.350520 run-command.c:661 trace: run_command: 'git credential-manager get'
09:26:25.975523 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:25.975523 git.c:748 trace: exec: git-credential-manager get
09:26:25.975523 run-command.c:661 trace: run_command: git-credential-manager get
09:26:26.350525 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:26.350525 git.c:462 trace: built-in: git config --null --list
09:26:26.428648 ...\Application.cs:106 trace: [RunInternalAsync] Version: 2.2.1.0
09:26:26.428648 ...\Application.cs:107 trace: [RunInternalAsync] Runtime: .NET Framework 4.0.30319.42000
09:26:26.428648 ...\Application.cs:108 trace: [RunInternalAsync] Platform: Windows (x86-64)
09:26:26.428648 ...\Application.cs:109 trace: [RunInternalAsync] OSVersion: 10.0 (build 17763)
09:26:26.428648 ...\Application.cs:110 trace: [RunInternalAsync] AppPath: C:\Program Files\Git\mingw64\bin\git-credential-manager.exe
09:26:26.428648 ...\Application.cs:111 trace: [RunInternalAsync] InstallDir: C:\Program Files\Git\mingw64\bin\
09:26:26.428648 ...\Application.cs:112 trace: [RunInternalAsync] Arguments: get
09:26:26.491144 ...GitCommandBase.cs:32 trace: [ExecuteAsync] Start 'get' command...
09:26:26.506767 ...GitCommandBase.cs:46 trace: [ExecuteAsync] Detecting host provider for input:
09:26:26.522397 ...GitCommandBase.cs:47 trace: [ExecuteAsync] protocol=https
09:26:26.522397 ...GitCommandBase.cs:47 trace: [ExecuteAsync] host=server.example.com
09:26:26.522397 ...GitCommandBase.cs:47 trace: [ExecuteAsync] wwwauth[]=Bearer
09:26:26.522397 ...GitCommandBase.cs:47 trace: [ExecuteAsync] wwwauth[]=Basic realm="https://server.example.com/"
09:26:26.522397 ...GitCommandBase.cs:47 trace: [ExecuteAsync] wwwauth[]=Negotiate
09:26:26.522397 ...GitCommandBase.cs:47 trace: [ExecuteAsync] wwwauth[]=NTLM
09:26:26.522397 ...oviderRegistry.cs:99 trace: [GetProviderAsync] Host provider override was set id='generic'
09:26:26.538020 ...GitCommandBase.cs:49 trace: [ExecuteAsync] Host provider 'Generic' was selected.
09:26:26.538020 ...\HostProvider.cs:126 trace: [GetCredentialAsync] Looking for existing credential in store with service=https://server.example.com account=...
09:26:26.538020 ...\HostProvider.cs:131 trace: [GetCredentialAsync] No existing credentials found.
09:26:26.538020 ...\HostProvider.cs:134 trace: [GetCredentialAsync] Creating new credential...
09:26:26.553645 ...ricOAuthConfig.cs:19 trace: [TryGet] Invalid OAuth configuration - missing/invalid authorize endpoint:
09:26:26.553645 ...icHostProvider.cs:86 trace: [GenerateCredentialAsync] Checking host 'https://server.example.com/' for Windows Integrated Authentication...
09:26:26.553645 ...Authentication.cs:34 trace: [GetIsSupportedAsync] HTTP: HEAD https://server.example.com/
09:26:26.553645 ...pClientFactory.cs:60 trace: [CreateClient] Creating new HTTP client instance...
09:26:26.616145 ...pClientFactory.cs:80 trace: [CreateClient] Git's SSL/TLS backend is: Schannel
09:26:26.694486 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:26.694486 git.c:462 trace: built-in: git version
09:26:26.756773 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:26.772399 git.c:462 trace: built-in: git config --null --type=path http.https://server.example.com.sslCAInfo
09:26:26.834899 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:26.834899 git.c:462 trace: built-in: git config --null --type=path http.server.example.com.sslCAInfo
09:26:26.897402 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:26.913025 git.c:462 trace: built-in: git config --null --type=path http.https://example.com.sslCAInfo
09:26:26.975519 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:26.975519 git.c:462 trace: built-in: git config --null --type=path http.example.com.sslCAInfo
09:26:27.053646 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:27.053646 git.c:462 trace: built-in: git config --null --type=path http.sslCAInfo
09:26:27.131770 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:27.147398 git.c:462 trace: built-in: git config --null --type=path http.https://server.example.com.cookieFile
09:26:27.225522 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:27.225522 git.c:462 trace: built-in: git config --null --type=path http.server.example.com.cookieFile
09:26:27.303651 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:27.303651 git.c:462 trace: built-in: git config --null --type=path http.https://example.com.cookieFile
09:26:27.381771 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:27.381771 git.c:462 trace: built-in: git config --null --type=path http.example.com.cookieFile
09:26:27.459899 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:27.459899 git.c:462 trace: built-in: git config --null --type=path http.cookieFile
09:26:27.584897 ...Authentication.cs:37 trace: [GetIsSupportedAsync] HTTP: Response code ignored.
09:26:27.600518 ...Authentication.cs:39 trace: [GetIsSupportedAsync] Inspecting WWW-Authenticate headers...
09:26:27.600518 ...Authentication.cs:44 trace: [GetIsSupportedAsync] Found WWW-Authenticate header for Negotiate
09:26:27.600518 ...Authentication.cs:49 trace: [GetIsSupportedAsync] Found WWW-Authenticate header for NTLM
09:26:27.600518 ...icHostProvider.cs:95 trace: [GenerateCredentialAsync] Host supports WIA - generating empty credential...
09:26:27.600518 ...\HostProvider.cs:136 trace: [GetCredentialAsync] Credential created.
09:26:27.600518 ...\GetCommand.cs:39 trace: [ExecuteInternalAsync] Writing credentials to output:
09:26:27.600518 ...\GetCommand.cs:40 trace: [ExecuteInternalAsync] protocol=https
09:26:27.600518 ...\GetCommand.cs:40 trace: [ExecuteInternalAsync] host=server.example.com
09:26:27.600518 ...\GetCommand.cs:40 trace: [ExecuteInternalAsync] username=
09:26:27.600518 ...\GetCommand.cs:40 trace: [ExecuteInternalAsync] password=********
09:26:27.600518 ...GitCommandBase.cs:53 trace: [ExecuteAsync] End 'get' command...
09:26:27.725520 run-command.c:661 trace: run_command: 'git credential-manager store'
09:26:28.084897 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:28.084897 git.c:748 trace: exec: git-credential-manager store
09:26:28.084897 run-command.c:661 trace: run_command: git-credential-manager store
09:26:28.459895 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:28.459895 git.c:462 trace: built-in: git config --null --list
09:26:28.522404 ...\Application.cs:106 trace: [RunInternalAsync] Version: 2.2.1.0
09:26:28.522404 ...\Application.cs:107 trace: [RunInternalAsync] Runtime: .NET Framework 4.0.30319.42000
09:26:28.522404 ...\Application.cs:108 trace: [RunInternalAsync] Platform: Windows (x86-64)
09:26:28.522404 ...\Application.cs:109 trace: [RunInternalAsync] OSVersion: 10.0 (build 17763)
09:26:28.522404 ...\Application.cs:110 trace: [RunInternalAsync] AppPath: C:\Program Files\Git\mingw64\bin\git-credential-manager.exe
09:26:28.538024 ...\Application.cs:111 trace: [RunInternalAsync] InstallDir: C:\Program Files\Git\mingw64\bin\
09:26:28.538024 ...\Application.cs:112 trace: [RunInternalAsync] Arguments: store
09:26:28.600526 ...GitCommandBase.cs:32 trace: [ExecuteAsync] Start 'store' command...
fatal: Missing 'username' input argument
at GitCredentialManager.Commands.StoreCommand.EnsureMinimumInputArguments(InputArguments input)
at GitCredentialManager.Commands.GitCommandBase.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Invocation.AnonymousCommandHandler.<InvokeAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass17_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass15_0.<<AddMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<<UseVersionOption>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass19_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__18_0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__5_0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass8_0.<<UseExceptionHandler>b__0>d.MoveNext()
09:26:28.725521 run-command.c:661 trace: run_command: 'git credential-manager store'
09:26:29.116157 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:29.116157 git.c:748 trace: exec: git-credential-manager store
09:26:29.116157 run-command.c:661 trace: run_command: git-credential-manager store
09:26:29.444280 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:29.444280 git.c:462 trace: built-in: git config --null --list
09:26:29.538026 ...\Application.cs:106 trace: [RunInternalAsync] Version: 2.2.1.0
09:26:29.538026 ...\Application.cs:107 trace: [RunInternalAsync] Runtime: .NET Framework 4.0.30319.42000
09:26:29.538026 ...\Application.cs:108 trace: [RunInternalAsync] Platform: Windows (x86-64)
09:26:29.538026 ...\Application.cs:109 trace: [RunInternalAsync] OSVersion: 10.0 (build 17763)
09:26:29.538026 ...\Application.cs:110 trace: [RunInternalAsync] AppPath: C:\Program Files\Git\mingw64\bin\git-credential-manager.exe
09:26:29.538026 ...\Application.cs:111 trace: [RunInternalAsync] InstallDir: C:\Program Files\Git\mingw64\bin\
09:26:29.538026 ...\Application.cs:112 trace: [RunInternalAsync] Arguments: store
09:26:29.600522 ...GitCommandBase.cs:32 trace: [ExecuteAsync] Start 'store' command...
fatal: Missing 'username' input argument
at GitCredentialManager.Commands.StoreCommand.EnsureMinimumInputArguments(InputArguments input)
at GitCredentialManager.Commands.GitCommandBase.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Invocation.AnonymousCommandHandler.<InvokeAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass17_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass15_0.<<AddMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<<UseVersionOption>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass19_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__18_0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__5_0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass8_0.<<UseExceptionHandler>b__0>d.MoveNext()
09:26:29.788037 run-command.c:661 trace: run_command: git rev-list --objects --stdin --not --exclude-hidden=fetch --all --quiet --alternate-refs
09:26:30.038024 run-command.c:1529 run_processes_parallel: preparing to run up to 1 tasks
09:26:30.038024 run-command.c:1557 run_processes_parallel: done
09:26:30.038024 run-command.c:661 trace: run_command: git maintenance run --auto --no-quiet
09:26:30.100530 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
09:26:30.100530 git.c:462 trace: built-in: git maintenance run --auto --no-quiet