Hi XNAT devs,
I'm getting an error when trying to pull dicom headers into xnat. See the log snips below. It's implying multiple sessions, but only one session was archived from prearchive. All StudyInstanceUID's in the archive are the same. Any suggestions?
Thanks,
XDAT is spitting out this interesting tidbit.
2026-07-14 12:59:40,821 [ajp-nio-127.0.0.1-8009-exec-1] ERROR org.nrg.xnat.archive.XNATSessionBuilder - An unexpected error occurred trying to process session directory /XNAT/BIDS/XNAT_DATA/archive/ADRC/arc001/XXXX_260001_Y0
org.nrg.session.SessionBuilder$NoUniqueSessionException: Multiple sessions found: [null, 1.3.12.2.1107.5.2.43.166133.3000002607061528XXXXXXXXX]
at org.nrg.dcm.xnat.DICOMSessionBuilder.getStudyInstanceUID(DICOMSessionBuilder.java:406)
at org.nrg.dcm.xnat.DICOMSessionBuilder.<init>(DICOMSessionBuilder.java:342)
at org.nrg.dcm.xnat.DICOMSessionBuilder.<init>(DICOMSessionBuilder.java:364)
at org.nrg.dcm.xnat.DICOMSessionBuilder.<init>(DICOMSessionBuilder.java:381)
at org.nrg.xnat.archive.XNATSessionBuilder.buildDicomSession(XNATSessionBuilder.java:248)
at org.nrg.xnat.archive.XNATSessionBuilder.call(XNATSessionBuilder.java:172)
at org.nrg.xnat.restlet.actions.PullSessionDataFromHeaders.call(PullSessionDataFromHeaders.java:84)
at org.nrg.xnat.restlet.resources.SubjAssessmentResource.handlePut(SubjAssessmentResource.java:517)
at org.restlet.Finder.handle(Finder.java:359)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130)
[SNIP]
Along with this is restlet.log:
2026-07-14 12:59:40,915 [ajp-nio-127.0.0.1-8009-exec-1] ERROR org.nrg.xnat.restlet.resources.SubjAssessmentAbst -
java.lang.Exception: Unable to locate DICOM or ECAT files
at org.nrg.xnat.restlet.actions.PullSessionDataFromHeaders.call(PullSessionDataFromHeaders.java:88)
at org.nrg.xnat.restlet.resources.SubjAssessmentResource.handlePut(SubjAssessmentResource.java:517)
at org.restlet.Finder.handle(Finder.java:359)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
[SNIP]
And this in applicaiton.log:
2026-07-14 13:04:19,139 [ajp-nio-127.0.0.1-8009-exec-6] ERROR org.nrg.session.SessionBuilder - /XNAT/BIDS/XNAT_DATA/archive/XXXX/arc001/XXXX_260001_Y0 must contain exactly one session
org.nrg.session.SessionBuilder$NoUniqueSessionException: No session found
at org.nrg.session.SessionBuilder.writeSession(SessionBuilder.java:210)
at org.nrg.session.SessionBuilder.run(SessionBuilder.java:249)
at org.nrg.xnat.archive.XNATSessionBuilder.buildPetSession(XNATSessionBuilder.java:233)
at org.nrg.xnat.archive.XNATSessionBuilder.call(XNATSessionBuilder.java:176)
at org.nrg.xnat.restlet.actions.PullSessionDataFromHeaders.call(PullSessionDataFromHeaders.java:84)
at org.nrg.xnat.restlet.resources.SubjAssessmentResource.handlePut(SubjAssessmentResource.java:517)
at org.restlet.Finder.handle(Finder.java:359)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)