-
Type:
Bug
-
Resolution: Duplicate
-
Priority:
Major
-
Component/s: pipeline-aws-plugin
-
None
After upgrading Jenkins to version 2.580, pipelines using the pipeline-aws plugin to upload files to Amazon S3 are failing.
The failure occurs when the plugin attempts to create/configure the AWS client. The plugin references the legacy Apache Commons Lang class:
org.apache.commons.lang.StringUtils
This class is no longer available on the Jenkins core classpath after the upgrade, resulting in a ClassNotFoundException / NoClassDefFoundError.
Error
Â
{{java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils
Caused: java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
at PluginClassLoader for pipeline-aws//de.taimos.pipeline.aws.AWSClientFactory.configureBuilder(AWSClientFactory.java:91)
at PluginClassLoader for pipeline-aws//de.taimos.pipeline.aws.AWSClientFactory.create(AWSClientFactory.java:84)
at PluginClassLoader for pipeline-aws//de.taimos.pipeline.aws.S3UploadStep$RemoteUploader.invoke(S3UploadStep.java:517)
at PluginClassLoader for pipeline-aws//de.taimos.pipeline.aws.S3UploadStep$Execution.run(S3UploadStep.java:460)}}
Steps to Reproduce
- Upgrade Jenkins to version 2.580.
- Run a pipeline that uses the pipeline-aws plugin.
- Execute an S3 upload using the s3Upload pipeline step.
- Observe that the upload fails before communication with S3 is completed.
Expected Result
The pipeline should successfully create the AWS client and upload the requested file to S3.
Actual Result
The pipeline fails with:
NoClassDefFoundError: org/apache/commons/lang/StringUtils
and the S3 upload does not occur.
Impact
Pipelines that depend on the pipeline-aws plugin for S3 uploads are currently blocked after the Jenkins 2.580 upgrade. This may impact build artifact publishing, deployment workflows, backups, and other jobs that upload files to S3.
Suspected Root Cause
The installed pipeline-aws plugin relies on Apache Commons Lang 2 and imports org.apache.commons.lang.StringUtils. Jenkins 2.579+ no longer provides this legacy library through the Jenkins core classpath, exposing the plugin's undeclared/obsolete dependency.
Potential Resolution / Workarounds
- Upgrade pipeline-aws once a Jenkins 2.580-compatible version is available.
- Patch the plugin to remove the Commons Lang 2 dependency or migrate to org.apache.commons.lang3.StringUtils.
- Temporarily roll Jenkins back to the previously working version.
- Temporarily replace the s3Upload pipeline step with the AWS CLI where appropriate.
Acceptance Criteria
- Pipelines using s3Upload successfully upload files to S3 on Jenkins 2.580.
- No ClassNotFoundException or NoClassDefFoundError related to org.apache.commons.lang.StringUtils is generated.
- Existing AWS credentials and S3 upload behavior continue to work without pipeline changes.
- The final remediation is documented, including any required plugin upgrade or configuration change.
- links to