jenkinsci / jenkinsci/git-plugin

[JENKINS-44775] "git" pipeline step should throw CredentialNotFoundException instead of AuthenticationFailed when credentials are not found

Open
#3,119 4 comments 0 reactions 0 assignees View on GitHub
component:git-plugin imported-jira-issue pipeline priority:minor resolution:unresolved
Dominant language
Java
Stars
694
Forks
1.1k
Avg merge
1h 29m
Merged PRs (30d)
3

Description

Environment



  • Jenkins 2.46.2

  • credentials:2.1.13 'Credentials Plugin'

  • credentials-binding:1.11 'Credentials Binding Plugin'

  • workflow-aggregator:2.5 'Pipeline'

  • workflow-api:2.12 'Pipeline: API'

  • workflow-basic-steps:2.4 'Pipeline: Basic Steps'

  • workflow-cps:2.29 'Pipeline: Groovy'

  • workflow-cps-checkpoint:2.4 'CloudBees Pipeline: Groovy Checkpoint Plugin'

  • workflow-cps-global-lib:2.7 'Pipeline: Shared Groovy Libraries'

  • workflow-durable-task-step:2.10 'Pipeline: Nodes and Processes'

  • workflow-job:2.10 'Pipeline: Job'

  • workflow-multibranch:2.14 'Pipeline: Multibranch'

  • workflow-scm-step:2.4 'Pipeline: SCM Step'

  • workflow-step-api:2.9 'Pipeline: Step API'

  • workflow-support:2.14 'Pipeline: Supporting APIs'

Description

"git" pipeline step should throw CredentialNotFoundException instead of AuthenticationFailed when credentials are not found.

node {

git credentialsId: 'credentials-do-not-exist', url: 'https://bitbucket.example.com/scm/pet/spring-petclinic.git'
}

```
Started by user admin
[Pipeline] node
Running on agent-1 in /home/ubuntu/agent-homr/workspace/tests/pipeline-step-git-credentials-do-not-exist
[Pipeline] {
[Pipeline] git
Cloning the remote Git repository
Cloning repository https://bitbucket.example.com/scm/pet/spring-petclinic.git
> git init /home/ubuntu/agent-homr/workspace/tests/pipeline-step-git-credentials-do-not-exist # timeout=10
Fetching upstream changes from https://bitbucket.example.com/scm/pet/spring-petclinic.git
> git --version # timeout=10
> git fetch --tags --progress https://bitbucket.example.com/scm/pet/spring-petclinic.git +refs/heads/*:refs/remotes/origin/*
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Command "git fetch --tags --progress https://bitbucket.example.com/scm/pet/spring-petclinic.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout:
stderr: fatal: Authentication failed for 'https://bitbucket.example.com/scm/pet/spring-petclinic.git/'

at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1793)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1519)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:64)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:315)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:512)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:153)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:146)
at hudson.remoting.UserRequest.perform(UserRequest.java:153)
at hudson.remoting.UserRequest.perform(UserRequest.java:50)
at hudson.remoting.Request$2.run(Request.java:336)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at ......remote call to agent-1(Native Method)
at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1545)
at hudson.remoting.UserResponse.retrieve(UserRequest.java:253)
at hudson.remoting.Channel.call(Channel.java:830)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:146)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:132)
at com.sun.proxy.$Proxy125.execute(Unknown Source)
at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1061)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1101)
at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:109)
at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:83)
at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:73)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
at hudson.security.ACL.impersonate(ACL.java:260)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: null
Finished: FAILURE

```

---
Originally reported by cleclerc, imported from: "git" pipeline step should throw CredentialNotFoundException instead of AuthenticationFailed when credentials are not found


  • status: Open
  • priority: Minor
  • component(s): git-plugin
  • label(s): pipeline
  • resolution: Unresolved
  • votes: 0
  • watchers: 3
  • imported: 2025-12-02

Raw content of original issue

Environment



  • Jenkins 2.46.2

  • credentials:2.1.13 'Credentials Plugin'

  • credentials-binding:1.11 'Credentials Binding Plugin'

  • workflow-aggregator:2.5 'Pipeline'

  • workflow-api:2.12 'Pipeline: API'

  • workflow-basic-steps:2.4 'Pipeline: Basic Steps'

  • workflow-cps:2.29 'Pipeline: Groovy'

  • workflow-cps-checkpoint:2.4 'CloudBees Pipeline: Groovy Checkpoint Plugin'

  • workflow-cps-global-lib:2.7 'Pipeline: Shared Groovy Libraries'

  • workflow-durable-task-step:2.10 'Pipeline: Nodes and Processes'

  • workflow-job:2.10 'Pipeline: Job'

  • workflow-multibranch:2.14 'Pipeline: Multibranch'

  • workflow-scm-step:2.4 'Pipeline: SCM Step'

  • workflow-step-api:2.9 'Pipeline: Step API'

  • workflow-support:2.14 'Pipeline: Supporting APIs'

Description

"git" pipeline step should throw CredentialNotFoundException instead of AuthenticationFailed when credentials are not found.


node {

git credentialsId: 'credentials-do-not-exist', url: 'https://bitbucket.example.com/scm/pet/spring-petclinic.git'
}


Started by user admin

[Pipeline] node
Running on agent-1 in /home/ubuntu/agent-homr/workspace/tests/pipeline-step-git-credentials-do-not-exist
[Pipeline] {
[Pipeline] git
Cloning the remote Git repository
Cloning repository https://bitbucket.example.com/scm/pet/spring-petclinic.git
> git init /home/ubuntu/agent-homr/workspace/tests/pipeline-step-git-credentials-do-not-exist # timeout=10
Fetching upstream changes from https://bitbucket.example.com/scm/pet/spring-petclinic.git
> git --version # timeout=10
> git fetch --tags --progress https://bitbucket.example.com/scm/pet/spring-petclinic.git +refs/heads/*:refs/remotes/origin/*
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Command "git fetch --tags --progress https://bitbucket.example.com/scm/pet/spring-petclinic.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout:
stderr: fatal: Authentication failed for 'https://bitbucket.example.com/scm/pet/spring-petclinic.git/'

at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1793)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1519)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:64)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:315)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:512)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:153)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:146)
at hudson.remoting.UserRequest.perform(UserRequest.java:153)
at hudson.remoting.UserRequest.perform(UserRequest.java:50)
at hudson.remoting.Request$2.run(Request.java:336)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at ......remote call to agent-1(Native Method)
at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1545)
at hudson.remoting.UserResponse.retrieve(UserRequest.java:253)
at hudson.remoting.Channel.call(Channel.java:830)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:146)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:132)
at com.sun.proxy.$Proxy125.execute(Unknown Source)
at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1061)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1101)
at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:109)
at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:83)
at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:73)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
at hudson.security.ACL.impersonate(ACL.java:260)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: null
Finished: FAILURE


1 attachment

- [cloudbees-support_cje-master.alliances.beescloud.com_2017-04-27_14.09.05.zip](https://issues.jenkins.io/secure/attachment/38408/cloudbees-support_cje-master.alliances.beescloud.com_2017-04-27_14.09.05.zip)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.