list_surveys() returns the wrong url for the MixIT survey — its journal DOI (https://doi.org/10.1038/s43856-026-01543-4) instead of its Zenodo dataset DOI (https://doi.org/10.5281/zenodo.17579537). download_survey() then correctly refuses the non-Zenodo DOI, so the survey can't be downloaded.
Reproduce
library(contactsurveys)
sl <- list_surveys()
mix <- sl[grepl("MixIT", sl$title), ]
mix$url
#> "https://doi.org/10.1038/s43856-026-01543-4" # journal DOI
download_survey(mix$url, tempdir())
#> ✖ DOI '10.1038/s43856-026-01543-4' does not seem to be a Zenodo DOI
#> Error: Request failed after 4 attempts.
The Zenodo dataset itself exists and downloads fine via the correct DOI:
f <- download_survey("https://doi.org/10.5281/zenodo.17579537", tempdir())
#> 8 files, md5-verified
(socialmixr::load_survey(f) then loads it cleanly: 4979 participants, 23718 contacts.)
Cause
The MixIT Zenodo record (10.5281/zenodo.17579537, in the social_contact_data community) carries the journal DOI as a related/alternate identifier, and list_surveys() seems to pick that up as the record's url rather than the record's own Zenodo DOI. Every other survey lists a 10.5281/zenodo.* DOI.
Impact
This surfaces downstream as the monthly socialmixr survey-check failing for MixIT (epiforecasts/socialmixr#351, and #341 before it) with an opaque invalid 'file' argument.
Suggested fix
list_surveys() should return the record's own Zenodo DOI (the 10.5281/zenodo.* concept/version DOI) as url, rather than a related/alternate journal DOI.
list_surveys()returns the wrongurlfor the MixIT survey — its journal DOI (https://doi.org/10.1038/s43856-026-01543-4) instead of its Zenodo dataset DOI (https://doi.org/10.5281/zenodo.17579537).download_survey()then correctly refuses the non-Zenodo DOI, so the survey can't be downloaded.Reproduce
The Zenodo dataset itself exists and downloads fine via the correct DOI:
(
socialmixr::load_survey(f)then loads it cleanly: 4979 participants, 23718 contacts.)Cause
The MixIT Zenodo record (
10.5281/zenodo.17579537, in thesocial_contact_datacommunity) carries the journal DOI as a related/alternate identifier, andlist_surveys()seems to pick that up as the record'surlrather than the record's own Zenodo DOI. Every other survey lists a10.5281/zenodo.*DOI.Impact
This surfaces downstream as the monthly socialmixr survey-check failing for MixIT (epiforecasts/socialmixr#351, and #341 before it) with an opaque
invalid 'file' argument.Suggested fix
list_surveys()should return the record's own Zenodo DOI (the10.5281/zenodo.*concept/version DOI) asurl, rather than a related/alternate journal DOI.