Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[JENKINS-76249] form submission data is occasionally garbage  #16833

@jenkins-infra-bot

Description

@jenkins-infra-bot

In some (as yet unexplained situations) the json form data when adding credentials is garbage.

Steps to Reproduce

Expected Results

  • test passes reliably

Actual Results

in some cases the test fails as the submitted json is broken,

e.g.

------geckoformboundarydcb5b5e50fbcbf4c6b8b778cf6b754f6
Content-Disposition: form-data; name="json"

{"domain":"_","":["1",""],"credentials":{"scope":["GLOBAL","GLOBAL"],"username":["user1",""],"usernameSecret":[false,false],"password":"","$redact":["password","passphrase"],"id":["",""],"description":["Ssh key",""],"privateKeySource":{"value":"0","privateKey":"1212122112","$redact":"privateKey","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource"},"passphrase":"","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey"},"Jenkins-Crumb":"5f57c3863f722e8911937f70b05c7f385376d795b2d5b004eec8e4a8ae32e50d"}
------geckoformboundarydcb5b5e50fbcbf4c6b8b778cf6b754f6--

Note that the values of many paramters (like scope) are doubled up.

The following error is shown in the Jenkins logs

2025-10-28 21:15:25.173+0000 [id=78]	WARNING	c.c.p.c.CredentialsSelectHelper$WrappedCredentialsStore#doAddCredentials: Failed to create Credentials
org.kohsuke.stapler.WrongTypeException: Got type array but no lister class found for type class com.cloudbees.plugins.credentials.CredentialsScope
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:917)
Caused: java.lang.IllegalArgumentException: Failed to convert the scope parameter of the constructor public com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey(com.cloudbees.plugins.credentials.CredentialsScope,java.lang.String,java.lang.String,com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$PrivateKeySource,java.lang.String,java.lang.String)
	at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:1010)
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:866)
Caused: java.lang.IllegalArgumentException: Failed to instantiate class com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey from {"scope":["GLOBAL","GLOBAL"],"username":["user1",""],"usernameSecret":[false,false],"password":"[value redacted]","$redact":["password","passphrase"],"id":["",""],"description":["Ssh key",""],"privateKeySource":{"value":"0","privateKey":"[value redacted]","$redact":"privateKey","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource"},"passphrase":"[value redacted]","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey"}
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:870)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:633)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:628)
	at hudson.model.Descriptor.bindJSON(Descriptor.java:662)
	at hudson.model.Descriptor.newInstanceImpl(Descriptor.java:620)
Caused: java.lang.LinkageError: Failed to instantiate class com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey from {"scope":["GLOBAL","GLOBAL"],"username":["user1",""],"usernameSecret":[false,false],"password":"[value redacted]","$redact":["password","passphrase"],"id":["",""],"description":["Ssh key",""],"privateKeySource":{"value":"0","privateKey":"[value redacted]","$redact":"privateKey","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource"},"passphrase":"[value redacted]","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey"}
	at hudson.model.Descriptor.newInstanceImpl(Descriptor.java:626)
	at hudson.model.Descriptor.newInstance(Descriptor.java:594)
	at hudson.model.Descriptor$NewInstanceBindInterceptor.instantiate(Descriptor.java:709)
	at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:980)
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:866)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:633)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:628)
	at hudson.model.Descriptor.bindJSON(Descriptor.java:662)
	at hudson.model.Descriptor.bindJSON(Descriptor.java:637)
	at PluginClassLoader for credentials//com.cloudbees.plugins.credentials.CredentialsSelectHelper$WrappedCredentialsStore.doAddCredentials(CredentialsSelectHelper.java:609)

Whilst there is currently no HAR to show this faulty submission, you can start the devtools and enable HAR recording once the test has started (and hope you are lucky that you catch the failure!)

Seems to fail about 1 in 10 for me - failed in the ATH job which reruns failed tests twice.

https://github.com/jenkinsci/acceptance-test-harness/pull/2221/checks?check_run_id=53913818869


Originally reported by teilo, imported from: form submission data is occasionally garbage
  • status: Open
  • priority: Major
  • component(s): core, credentials-plugin, ssh-credentials-plugin
  • label(s): form-data
  • resolution: Unresolved
  • votes: 0
  • watchers: 1
  • imported: 2025-11-24
Raw content of original issue

In some (as yet unexplained situations) the json form data when adding credentials is garbage.

Steps to Reproduce

Expected Results

  • test passes reliably

Actual Results

in some cases the test fails as the submitted json is broken,

e.g.

------geckoformboundarydcb5b5e50fbcbf4c6b8b778cf6b754f6
Content-Disposition: form-data; name="json"

{"domain":"_","":["1",""],"credentials":{"scope":["GLOBAL","GLOBAL"],"username":["user1",""],"usernameSecret":[false,false],"password":"","$redact":["password","passphrase"],"id":["",""],"description":["Ssh key",""],"privateKeySource":{"value":"0","privateKey":"1212122112","$redact":"privateKey","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource"},"passphrase":"","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey"},"Jenkins-Crumb":"5f57c3863f722e8911937f70b05c7f385376d795b2d5b004eec8e4a8ae32e50d"}
------geckoformboundarydcb5b5e50fbcbf4c6b8b778cf6b754f6--

Note that the values of many paramters (like scope) are doubled up.

The following error is shown in the Jenkins logs

2025-10-28 21:15:25.173+0000 [id=78]	WARNING	c.c.p.c.CredentialsSelectHelper$WrappedCredentialsStore#doAddCredentials: Failed to create Credentials
org.kohsuke.stapler.WrongTypeException: Got type array but no lister class found for type class com.cloudbees.plugins.credentials.CredentialsScope
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:917)
Caused: java.lang.IllegalArgumentException: Failed to convert the scope parameter of the constructor public com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey(com.cloudbees.plugins.credentials.CredentialsScope,java.lang.String,java.lang.String,com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$PrivateKeySource,java.lang.String,java.lang.String)
	at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:1010)
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:866)
Caused: java.lang.IllegalArgumentException: Failed to instantiate class com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey from {"scope":["GLOBAL","GLOBAL"],"username":["user1",""],"usernameSecret":[false,false],"password":"[value redacted]","$redact":["password","passphrase"],"id":["",""],"description":["Ssh key",""],"privateKeySource":{"value":"0","privateKey":"[value redacted]","$redact":"privateKey","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource"},"passphrase":"[value redacted]","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey"}
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:870)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:633)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:628)
	at hudson.model.Descriptor.bindJSON(Descriptor.java:662)
	at hudson.model.Descriptor.newInstanceImpl(Descriptor.java:620)
Caused: java.lang.LinkageError: Failed to instantiate class com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey from {"scope":["GLOBAL","GLOBAL"],"username":["user1",""],"usernameSecret":[false,false],"password":"[value redacted]","$redact":["password","passphrase"],"id":["",""],"description":["Ssh key",""],"privateKeySource":{"value":"0","privateKey":"[value redacted]","$redact":"privateKey","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource"},"passphrase":"[value redacted]","stapler-class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey","$class":"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey"}
	at hudson.model.Descriptor.newInstanceImpl(Descriptor.java:626)
	at hudson.model.Descriptor.newInstance(Descriptor.java:594)
	at hudson.model.Descriptor$NewInstanceBindInterceptor.instantiate(Descriptor.java:709)
	at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:980)
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:866)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:633)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:628)
	at hudson.model.Descriptor.bindJSON(Descriptor.java:662)
	at hudson.model.Descriptor.bindJSON(Descriptor.java:637)
	at PluginClassLoader for credentials//com.cloudbees.plugins.credentials.CredentialsSelectHelper$WrappedCredentialsStore.doAddCredentials(CredentialsSelectHelper.java:609)

Whilst there is currently no HAR to show this faulty submission, you can start the devtools and enable HAR recording once the test has started (and hope you are lucky that you catch the failure!)

Seems to fail about 1 in 10 for me - failed in the ATH job which reruns failed tests twice.

https://github.com/jenkinsci/acceptance-test-harness/pull/2221/checks?check_run_id=53913818869

environment
Jenkins 2.528.1<br/>
Java 17<br/>
Firefox<br/>
ATH

Metadata

Metadata

Assignees

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions