-
-
Notifications
You must be signed in to change notification settings - Fork 401
Regression in git-client 6.4.1: Git fetch fails for branches with / (URL-encoded as %2F) causing vdollar_percent_expand error #1710
Copy link
Copy link
Labels
Description
Jenkins and plugins versions report
Environment
Jenkins: 2.528.3
OS: Linux - 5.15.0-1098-azure
Java: 21.0.9 - Eclipse Adoptium (OpenJDK 64-Bit Server VM)
---
allure-jenkins-plugin:2.34.0
analysis-model-api:13.17.0-931.v730d8659ea_9c
ansicolor:1.0.6
ant:520.vd082ecfb_16a_9
antisamy-markup-formatter:173.v680e3a_b_69ff3
apache-httpcomponents-client-4-api:4.5.14-269.vfa_2321039a_83
apache-httpcomponents-client-5-api:5.5-170.v023de017ccd7
appcenter:0.11.1
asm-api:9.9-185.va_6c6b_3348b_c3
atlassian-bitbucket-server-integration:5.0.0
atlassian-jira-software-cloud:2.0.15
authentication-tokens:1.144.v5ff4a_5ec5c33
authorize-project:2.0.0
aws-credentials:254.v978a_5e206a_d7
aws-java-sdk:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-api-gateway:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-autoscaling:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-cloudformation:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-cloudfront:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-cloudwatch:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-codebuild:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-codedeploy:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-ec2:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-ecr:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-ecs:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-efs:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-elasticbeanstalk:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-elasticloadbalancingv2:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-iam:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-kinesis:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-lambda:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-logs:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-minimal:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-organizations:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-secretsmanager:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-sns:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-sqs:1.12.780-480.v4a_0819121a_9e
aws-java-sdk-ssm:1.12.780-480.v4a_0819121a_9e
aws-java-sdk2-core:2.31.63-54.vcf1e5a_c56c49
aws-java-sdk2-ec2:2.31.63-54.vcf1e5a_c56c49
azure-ad:631.vb_2d4d8cc86b_0
azure-credentials:404.vd0fb_33a_8a_14e
azure-keyvault:327.v3f37dc30312a_
azure-sdk:259.vf079c96088a_f
azure-vm-agents:1075.v0de0eb_b_27544
badge:2.562.vc3c0b_6925377
basic-branch-build-strategies:275.vde2351b_4a_58b_
bitbucket:282.v85a_7e442f57b_
blueocean:1.27.25
blueocean-bitbucket-pipeline:1.27.25
blueocean-commons:1.27.25
blueocean-config:1.27.25
blueocean-core-js:1.27.25
blueocean-dashboard:1.27.25
blueocean-display-url:2.4.4
blueocean-events:1.27.25
blueocean-git-pipeline:1.27.25
blueocean-github-pipeline:1.27.25
blueocean-i18n:1.27.25
blueocean-jwt:1.27.25
blueocean-personalization:1.27.25
blueocean-pipeline-api-impl:1.27.25
blueocean-pipeline-editor:1.27.25
blueocean-pipeline-scm-api:1.27.25
blueocean-rest:1.27.25
blueocean-rest-impl:1.27.25
blueocean-web:1.27.25
bootstrap5-api:5.3.8-895.v4d0d8e47fea_d
bouncycastle-api:2.30.1.82-277.v70ca_0b_877184
branch-api:2.1268.v044a_87612da_8
browserstack-integration:1.2.24
build-environment:1.7
build-history-metrics-plugin:183.vb_9c822e0943e
build-monitor-plugin:1.14-985.v7b_f37b_3d0b_f5
build-name-setter:2.5.1
build-pipeline-plugin:2.0.2
build-timeout:1.38
build-token-root:151.va_e52fe3215fc
build-user-vars-plugin:212.vd6b_e9f6d0cdb_
build-with-parameters:81.ve4a_9c2499d9a
caffeine-api:3.2.3-194.v31a_b_f7a_b_5a_81
chatter-notifier:2.1.1
checkmarx-ast-scanner:2.0.13-821.v6b_495686cdb_a_
checks-api:373.vfe7645102093
chromedriver:1.2
cloud-stats:377.vd8a_6c953e98e
cloudbees-bitbucket-branch-source:937.2.2
cloudbees-credentials:3.3
cloudbees-disk-usage-simple:256.v20ec4eb_884f1
cloudbees-folder:6.1073.va_7888eb_dd514
cmakebuilder:4.1.1
code-coverage-api:4.99.0
command-launcher:123.v37cfdc92ef67
commons-collections4-api:4.5.0-8.va_d5448ef9011
commons-compress-api:1.28.0-1
commons-httpclient3-api:3.1-3
commons-lang3-api:3.20.0-109.ve43756e2d2b_4
commons-math3-api:3.6.1-70.v4fe220fa_63dd
commons-text-api:1.15.0-210.v7480a_da_70b_9e
config-file-provider:1006.vc7366c201f57
configuration-as-code:2006.v001a_2ca_6b_574
copyartifact:770.va_6c69e063442
cors-filter:21.v34a_0a_7179a_5a_
coverage:2.3060.v035a_5557cdb_c
credentials:1453.v9b_a_29777a_b_fd
credentials-binding:702.vfe613e537e88
cron_column:83.vd52c9b_5c758c
cucumber-reports:5.10.0
custom-tools-plugin:0.8
customizable-header:251.251.v49b_7da_e6c61a_
data-tables-api:2.3.5-1482.vb_47a_3c19f78c
datatheorem-mobile-app-security:2.4.2
dependency-check-jenkins-plugin:5.6.2
display-url-api:2.217.va_6b_de84cc74b_
docker-build-step:2.12
docker-commons:457.v0f62a_94f11a_3
docker-java-api:3.3.1-79.v20b_53427e041
docker-workflow:634.vedc7242b_eda_7
downstream-build-cache:1.7
durable-task:639.vefb_3d8372f6d
echarts-api:6.0.0-1165.vd1283a_3e37d4
eddsa-api:0.3.0.1-19.vc432d923e5ee
email-ext:1933.v45cec755423f
emoji-symbols-api:17.0-57.v8d44b_9a_b_d5ea_
envinject:2.926.v69c9b_3896a_96
envinject-api:1.236.v35fd4d7eb_515
extended-choice-parameter:388.ve7b_d0b_920e10
extended-read-permission:68.vd270568a_7520
external-monitor-job:223.vb_fddcf42c9b_3
extra-tool-installers:211.v880567f652f0
favorite:2.253.v9b_413168133b_
file-operations:353.vf3b_9b_a_f1f7f7
file-parameters:412.vf26e5b_6e7431
flatpickr-api:4.6.13-18.vcf5f6a_5b_8468
font-awesome-api:7.1.0-882.v1dfb_771e3278
forensics-api:3.1772.v99ca_3d83b_9fa_
fortify:23.1.40
fortify-on-demand-uploader:8.0.1
generic-webhook-trigger:2.4.1
git:5.8.1
git-client:6.4.1
git-forensics:3.2138.vf25ea_d549e33
git-server:137.ve0060b_432302
github:1.45.0
github-api:1.330-492.v3941a_032db_2a_
github-branch-source:1917.v9ee8a_39b_3d0d
google-oauth-plugin:1.335.ve6de40e2db_18
google-play-android-publisher:4.2
gradle:2.16.1149.v711b_998b_0532
gravatar:210.201.vf3640e8d8447
groovy:497.v7b_061a_a_de65d
groovy-postbuild:272.v52a_03efb_8653
gson-api:2.13.2-173.va_a_092315913c
handy-uri-templates-2-api:2.1.8-38.vcea_5d521d5f3
hp-application-automation-tools-plugin:25.4
htmlpublisher:427
http_request:1.24
instance-identity:203.v15e81a_1b_7a_38
ionicons-api:94.vcc3065403257
ivy:582.v35fb_da_0312f7
jackson2-api:2.20.1-423.v13951f6b_6532
jakarta-activation-api:2.1.4-1
jakarta-mail-api:2.1.5-1
jakarta-xml-bind-api:4.0.5-3.v3d5b_a_73965b_9
javadoc:354.vee1a_660b_4990
javax-activation-api:1.2.0-8
javax-mail-api:1.6.2-11
jaxb:2.3.9-133.vb_ec76a_73f706
jdk-tool:83.v417146707a_3d
jenkins-design-language:1.27.25
jjwt-api:0.11.5-120.v0268cf544b_89
job-dsl:1.93
jobConfigHistory:1356.ve360da_6c523a_
joda-time-api:2.14.0-149.v1c3ce991d1b_9
jquery:1.12.4-3
jquery3-api:3.7.1-619.vdb_10e002501a_
jsch:0.2.16-95.v3eecb_55fa_b_78
json-api:20250517-173.v596efb_962a_31
json-path-api:2.10.0-202.va_9cc16c1e476
jsoup:1.21.2-66.v6ea_38164b_8a_2
junit:1369.v15da_00283f06
kubernetes:4398.vb_b_33d9e7fe23
kubernetes-client-api:7.3.1-256.v788a_0b_787114
kubernetes-credentials:206.vde31a_b_0f71a_c
ldap:793.v754d6b_41b_ea_4
liquibase-runner:1.4.10
locale:614.va_6a_5a_1a_f2b_38
lockable-resources:1438.v3c0f8c9e2060
logfilesizechecker:1.5
login-theme:284.v95044396a_484
logstash:2.5.0218.v0a_ff8fefc12b_
mailer:525.v2458b_d8a_1a_71
mapdb-api:1.0.9-44.va_1e1310c9118
mask-passwords:212.v4967a_a_73b_506
matrix-auth:3.2.9
matrix-project:870.v9db_fcfc2f45b_
maven-plugin:3.27
mercurial:1323.ve69d2a_db_8a_b_d
metrics:4.2.37-489.vb_6db_69b_ce753
mina-sshd-api-common:2.16.0-167.va_269f38cc024
mina-sshd-api-core:2.16.0-167.va_269f38cc024
monitoring:2.5.0
netty-api:4.1.118.Final-9.v776038d601a_7
newrelic-deployment-notifier:1.12
next-build-number:66.v4b_4762172d53
next-executions:464.v7194fa_725e34
nexus-jenkins-plugin:3.27.0-01
nodejs:1.6.6
oauth-credentials:0.657.v7d8dd90b_0382
okhttp-api:4.12.0-195.vc02552c04ffd
opentelemetry:3.1543.1545.vf5a_4ec123769
opentelemetry-api:1.49.0.59.vc32561e77cf3
oss-symbols-api:392.v27a_482d90083
pam-auth:1.12
parameter-separator:296.v9b_a_90c81160d
parameterized-scheduler:285.ve611986d4c48
parameterized-trigger:873.v8b_e37dd8418f
pipeline-aws:1.45
pipeline-build-step:571.v08a_fffd4b_0ce
pipeline-github-lib:65.v203688e7727e
pipeline-graph-analysis:245.v88f03631a_b_21
pipeline-groovy-lib:787.ve2fef0efdca_6
pipeline-input-step:540.v14b_100d754dd
pipeline-maven:1567.vb_2c3a_2116860
pipeline-maven-api:1567.vb_2c3a_2116860
pipeline-milestone-step:138.v78ca_76831a_43
pipeline-model-api:2.2277.v00573e73ddf1
pipeline-model-definition:2.2277.v00573e73ddf1
pipeline-model-extensions:2.2277.v00573e73ddf1
pipeline-multibranch-defaults:2.1
pipeline-rest-api:2.38
pipeline-stage-step:322.vecffa_99f371c
pipeline-stage-tags-metadata:2.2277.v00573e73ddf1
pipeline-stage-view:2.38
pipeline-utility-steps:2.20.0
plain-credentials:199.v9f8e1f741799
plugin-util-api:6.1192.v30fe6e2837ff
prism-api:1.30.0-630.va_e19d17f83b_0
prometheus:819.v50953a_c560dd
promoted-builds:992.va_00888f21b_74
pubsub-light:1.19
rebuild:338.va_0a_b_50e29397
repo:1.16.0
resource-disposer:0.25
saml:4.590.v6170b_1013da_f
scm-api:724.v7d839074eb_5c
script-security:1385.v7d2d9ec4d909
seleniumhtmlreport:1.1
servicenow-devops:6.2.0
simple-build-for-pipeline:0.2
simple-theme-plugin:211.v5424a_5510e47
skip-notifications-trait:576.v7a_67396e2e0b_
snakeyaml-api:2.5-143.v93b_c004f89de
sonar:2.18.2
sse-gateway:1.28
ssh-agent:386.v36cc0c7582f0
ssh-credentials:361.vb_f6760818e8c
ssh-slaves:3.1085.vc64d040efa_85
sshd:3.374.v19b_d59ce6610
stash-pullrequest-builder:1.17
structs:362.va_b_695ef4fdf9
subversion:1292.ve8cf25770ee3
tap:2.4.4
testng-plugin:940.vc244edffc2ec
timestamper:1.30
token-macro:477.vd4f0dc3cb_cf1
trilead-api:2.284.v1974ea_324382
uno-choice:2.8.8
variant:70.va_d9f17f859e0
view-job-filters:405.v9a_5fddc9230d
violation-comments-to-stash:1.134
warnings-ng:12.9848.v5603977006f2
workflow-aggregator:608.v67378e9d3db_1
workflow-api:1384.vdc05a_48f535f
workflow-basic-steps:1098.v808b_fd7f8cf4
workflow-cps:4238.va_6fb_65c1f699
workflow-durable-task-step:1464.v2d3f5c68f84c
workflow-job:1559.va_a_533730b_ea_d
workflow-multibranch:821.vc3b_4ea_780798
workflow-scm-step:466.va_d69e602552b_
workflow-step-api:710.v3e456cc85233
workflow-support:1010.vb_b_39488a_9841
ws-cleanup:0.49
xray-connector:2.6.2
yet-another-build-visualizer:1.17
What Operating System are you using (both controller, and any agents involved in the problem)?
Debian
Reproduction steps
- Run Jenkins using jenkins/jenkins:2.528.3-lts-jdk21.
- Install git-client plugin 6.4.1.
- Use jenkins/inbound-agent:jdk21 as a Linux JNLP agent.
- Configure a Multibranch Pipeline or Shared Library using SSH-based Git access.
- Create a branch with / in the name (e.g. feature/TEST-123).
- Trigger a build or branch indexing.
- Build fails during git fetch with:
vdollar_percent_expand: unknown key %2 - Downgrade to git-client 6.4.0 → build succeeds.
Expected Results
Jenkins should successfully fetch the repository and load shared libraries for branches containing / in their names (URL-encoded as %2F), without errors, as observed when using git-client plugin version 6.4.0.
Actual Results
With git-client plugin version 6.4.1 and 6.4.2, the build fails during git fetch or shared library retrieval for branches containing /. Jenkins encodes the branch name as %2F, and Git exits with the error vdollar_percent_expand: unknown key %2, causing the pipeline to fail.
Started by user <user-redacted>
Obtained Jenkinsfile from <commit-id>
Only using first definition of library <shared-library>
Loading library <shared-library>@master
Attempting to resolve master from remote references...
> /usr/bin/git --version # timeout=10
> git --version # 'git version 2.47.3'
using GIT_SSH to set credentials <ssh-credential>
Verifying host key using manually-configured host key entries
> /usr/bin/git ls-remote -- ssh://git@<git-host>:<port>/<org>/<repo>.git # timeout=10
Found match: refs/heads/master revision <commit-id>
The recommended git tool is: /usr/bin/git
using credential <ssh-credential>
> /usr/bin/git rev-parse --resolve-git-dir \
/data/workspaces/<job-path>/feature%2FTEST-123@libs/<hash>/.git # timeout=10
Fetching changes from the remote Git repository
> /usr/bin/git config remote.origin.url \
ssh://git@<git-host>:<port>/<org>/<repo>.git # timeout=10
Fetching without tags
Fetching upstream changes from ssh://git@<git-host>:<port>/<org>/<repo>.git
> /usr/bin/git --version # timeout=10
> git --version # 'git version 2.47.3'
using GIT_SSH to set credentials <ssh-credential>
Verifying host key using manually-configured host key entries
> /usr/bin/git fetch --no-tags --force --progress -- \
ssh://git@<git-host>:<port>/<org>/<repo>.git \
+refs/heads/*:refs/remotes/origin/* # timeout=10
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from remote repository
Caused by: hudson.plugins.git.GitException:
Command "/usr/bin/git fetch --no-tags --force --progress -- ..." returned status code 128:
stdout:
stderr:
vdollar_percent_expand: unknown key %2
percent_dollar_expand: failed
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
ERROR: Maximum checkout retry attempts reached, aborting
ERROR: Loading libraries failed
Finished: FAILURE
Anything else?
No response
Are you interested in contributing a fix?
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Fields
Give feedbackNo fields configured for Bug.