jenkinsci / jenkinsci/credentials-binding-plugin

[JENKINS-55552] NullPointerException when using Credentials Binding Plugin

Open
#464 2 comments 0 reactions 0 assignees View on GitHub
component:credentials-binding-plugin imported-jira-issue priority:minor resolution:unresolved
Dominant language
Java
Stars
57
Forks
108
PR merge metrics
No merged PRs in 30d

Description

A NullPointerException with no stacktrace is experienced when trying to run the following pipeline:

pipeline {

agent any
stages {
stage('stage usernameColonPassword') {
steps {
sh 'echo usernameColonPassword 1'
withCredentials([usernameColonPassword(credentialsId: 'mysecret', variable: 'SECRET')]) {
sh 'echo usernameColonPassword 2'
}
}
}
stage('stage usernamePassword') {
steps {
sh 'echo usernamePassword 3'
withCredentials([usernamePassword(credentialsId: 'mysecret', passwordVariable: 'SECRET2')]) {
sh 'echo usernamePassword 4'
}
}
}
}
}


where "mysecret" is a credential with it's "kind" being "username and password".

This exception causes the job to fail.

 

Specifically, `usernameColonPassword` succeeds, while `usernamePassword` fails; `usernamePassword 4` is never printed to the log.

 

This was the first time I have tried to run this script, so I have never observed this succeeding; for all I know, it has always failed.

 

My workaround options are bad:  either parse the password out of the `user:pass` format, or abandon the plugin.

 

UPDATE: as mentioned in the comments, there is a better workaround.  This ticket is now for removing or documenting the requirement for all arguments to be used, and creating a useful error message.

---
Originally reported by cowlinator, imported from: NullPointerException when using Credentials Binding Plugin


  • status: Open
  • priority: Minor
  • component(s): credentials-binding-plugin
  • resolution: Unresolved
  • votes: 2
  • watchers: 3
  • imported: 20251211-141027

Raw content of original issue

A NullPointerException with no stacktrace is experienced when trying to run the following pipeline:



pipeline {

agent any
stages {
stage('stage usernameColonPassword') {
steps {
sh 'echo usernameColonPassword 1'
withCredentials([usernameColonPassword(credentialsId: 'mysecret', variable: 'SECRET')]) {
sh 'echo usernameColonPassword 2'
}
}
}
stage('stage usernamePassword') {
steps {
sh 'echo usernamePassword 3'
withCredentials([usernamePassword(credentialsId: 'mysecret', passwordVariable: 'SECRET2')]) {
sh 'echo usernamePassword 4'
}
}
}
}
}



where "mysecret" is a credential with it's "kind" being "username and password".

This exception causes the job to fail.

 

Specifically, `usernameColonPassword` succeeds, while `usernamePassword` fails; `usernamePassword 4` is never printed to the log.

 

This was the first time I have tried to run this script, so I have never observed this succeeding; for all I know, it has always failed.

 

My workaround options are bad:  either parse the password out of the `user:pass` format, or abandon the plugin.

 

UPDATE: as mentioned in the comments, there is a better workaround.  This ticket is now for removing or documenting the requirement for all arguments to be used, and creating a useful error message.

environment

```
Jenkins server: runs on jenkins/jenkins:lts docker image (image id: 5907903170ad), with Jenkins version 2.150.1.

Credentials-binding-plugin version: 1.17.

Agent: runs on the server node.

```

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.