Successful builds subsequently disappearing from the interface

After upgrading Jenkins (running under Tomcat) we have encountered a problem where successful builds subsequently disappear from the Jenkins interface. No build.xml is created in the projects ‘apparently’ successful build folder just changelog.xml, log and revision.txt.

If I display the System log from Manage Jenkins there are the folliwng NPE’s e.g.-

Apr 12, 2024 3:01:45 PM WARNING hudson.ExpressionFactory2$JexlExpression evaluate
Caught exception evaluating: it.isTagged() in /jenkins/job/InSync%20V7200/buildHistory/ajax. Reason: java.lang.NullPointerException: Cannot invoke "java.util.Map.values()" because "this.tags" is null
java.lang.NullPointerException: Cannot invoke "java.util.Map.values()" because "this.tags" is null
	at hudson.scm.SubversionTagAction.isTagged(SubversionTagAction.java:178)
	at jdk.internal.reflect.GeneratedMethodAccessor764.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:258)
	at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:104)
	at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
	at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
	at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
	at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
	at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:76)
	at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61)
	at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:71)

.
etc

Any suggestions on how to resolve it?

Jenkins setup:
Jenkins: 2.440.1
OS: Windows Server 2022 - 10.0
Java: 17.0.10 - Microsoft (OpenJDK 64-Bit Server VM)
---
active-directory:2.35
ant:497.v94e7d9fffa_b_9
antisamy-markup-formatter:162.v0e6ec0fcfcf6
apache-httpcomponents-client-4-api:4.5.14-208.v438351942757
asm-api:9.6-3.v2e1fa_b_338cd7
audit-trail:361.v82cde86c784e
authentication-tokens:1.53.v1c90fd9191a_b_
bootstrap5-api:5.3.3-1
bouncycastle-api:2.30.1.77-225.v26ea_c9455fd9
branch-api:2.1152.v6f101e97dd77
build-timeout:1.32
caffeine-api:3.1.8-133.v17b_1ff2e0599
checks-api:2.0.2
cloudbees-folder:6.901.vb_4c7a_da_75da_3
command-launcher:107.v773860566e2e
commons-lang3-api:3.13.0-62.v7d18e55f51e2
commons-text-api:1.11.0-95.v22a_d30ee5d36
conditional-buildstep:1.4.3
config-file-provider:968.ve1ca_eb_913f8c
copyartifact:722.v0662a_9b_e22a_c
credentials:1337.v60b_d7b_c7b_c9f
credentials-binding:657.v2b_19db_7d6e6d
data-tables-api:2.0.2-1
display-url-api:2.200.vb_9327d658781
docker-commons:439.va_3cb_0a_6a_fb_29
docker-workflow:572.v950f58993843
durable-task:550.v0930093c4b_a_6
echarts-api:5.5.0-1
email-ext:2.105
external-monitor-job:215.v2e88e894db_f8
file-operations:214.v2e7dc7f25757
font-awesome-api:6.5.1-3
git:5.2.1
git-client:4.7.0
git-server:114.v068a_c7cc2574
github:1.38.0
github-api:1.318-461.v7a_c09c9fa_d63
github-branch-source:1781.va_153cda_09d1b_
gradle:2.10
gson-api:2.10.1-15.v0d99f670e0a_7
instance-identity:185.v303dc7c645f9
ionicons-api:56.v1b_1c8c49374e
jackson2-api:2.17.0-379.v02de8ec9f64c
jakarta-activation-api:2.1.3-1
jakarta-mail-api:2.1.3-1
javadoc:243.vb_b_503b_b_45537
javax-activation-api:1.2.0-6
javax-mail-api:1.6.2-9
jaxb:2.3.9-1
jdk-tool:73.vddf737284550
jjwt-api:0.11.5-77.v646c772fddb_0
job-import-plugin:3.6
joda-time-api:2.12.7-29.v5a_b_e3a_82269a_
jquery3-api:3.7.1-2
jsch:0.2.16-86.v42e010d9484b_
json-api:20240303-41.v94e11e6de726
json-path-api:2.9.0-52.v57de85cc4722
junit:1259.v65ffcef24a_88
ldap:719.vcb_d039b_77d0d
lockable-resources:1243.v346d600eea_24
mailer:472.vf7c289a_4b_420
mapdb-api:1.0.9-28.vf251ce40855d
matrix-auth:3.2.2
matrix-project:822.824.v14451b_c0fd42
maven-plugin:3.23
mina-sshd-api-common:2.12.0-90.v9f7fb_9fa_3d3b_
mina-sshd-api-core:2.12.0-90.v9f7fb_9fa_3d3b_
okhttp-api:4.11.0-172.vda_da_1feeb_c6e
pam-auth:1.10
parameterized-trigger:787.v665fcf2a_830b_
pipeline-build-step:540.vb_e8849e1a_b_d8
pipeline-github-lib:42.v0739460cda_c4
pipeline-graph-analysis:216.vfd8b_ece330ca_
pipeline-groovy-lib:704.vc58b_8890a_384
pipeline-input-step:491.vb_07d21da_1a_fb_
pipeline-milestone-step:111.v449306f708b_7
pipeline-model-api:2.2184.v0b_358b_953e69
pipeline-model-definition:2.2184.v0b_358b_953e69
pipeline-model-extensions:2.2184.v0b_358b_953e69
pipeline-rest-api:2.34
pipeline-stage-step:305.ve96d0205c1c6
pipeline-stage-tags-metadata:2.2184.v0b_358b_953e69
pipeline-stage-view:2.34
plain-credentials:179.vc5cb_98f6db_38
plugin-util-api:4.1.0
publish-over:0.22
publish-over-cifs:0.16
publish-over-ftp:1.17
publish-over-ssh:1.25
resource-disposer:0.23
role-strategy:713.vb_3837801b_8cc
run-condition:1.7
scm-api:689.v237b_6d3a_ef7f
script-security:1326.vdb_c154de8669
snakeyaml-api:2.2-111.vc6598e30cc65
ssh-credentials:322.v124df57ed808
ssh-slaves:2.948.vb_8050d697fec
sshd:3.322.v159e91f6a_550
structs:337.v1b_04ea_4df7c8
subversion:2.17.3
timestamper:1.26
token-macro:400.v35420b_922dcb_
trilead-api:2.142.v748523a_76693
variant:60.v7290fc0eb_b_cd
versionnumber:1.11
workflow-aggregator:596.v8c21c963d92d
workflow-api:1291.v51fd2a_625da_7
workflow-basic-steps:1049.v257a_e6b_30fb_d
workflow-cps:3883.vb_3ff2a_e3eea_f
workflow-durable-task-step:1331.vc8c2fed35334
workflow-job:1400.v7fd111b_ec82f
workflow-multibranch:773.vc4fe1378f1d5
workflow-scm-step:427.v4ca_6512e7df1
workflow-step-api:657.v03b_e8115821b_
workflow-support:865.v43e78cc44e0d
ws-cleanup:0.45

That is a surprising error message. The SubversionTagAction class expects that its private field tags will never be null, yet somehow in your configuration it is null.

It might be that there are build records stored with that job that have somehow stored a null value for the tags field. If that is the case, then deleting the build history of that job might resolve the issue.

I’m not a subversion plugin user. Please consider my suggestion a wild guess rather than an informed answer.

Thanks for your response, the problem happens for all projects including newly created projects with no previous build history.
Is there some job or global config, or environment variable, that would force the tag value to be not null, or something that would bypass invoking that bit of code, of course it still needs to retrieve from SVN so I can’t just uninstall the SVN plugin.
I’m wondering if downgrading the SVN plugin would be worth trying.

Downgrading the SVN plugin made no difference.

I did find that if the job configuration was changed by ticking ‘Create a formatted version number’ (using the Jenkins versionnumber plugin) a build.xml file did get created. Unfortunately the build.xml file created had no result tag even though it was successful, so when a subsequent build ran, the status icon for the prior successful build changed to a red circle with a cross (instead of a green circle with a tick)