Finishing a study
What finalizing an experiment does, which providers support it, and why it can't be undone.
When your study is finished, finalize the experiment from its dashboard. DataPipe merges every remaining data file into a single archive on your storage provider and stops accepting new submissions, which makes the dataset easier to share and cite. Finalizing cannot be undone, so do it only when you are certain no more data is coming.
Finalizing is optional, and today it applies to Zenodo experiments only. An experiment you stop using keeps its files exactly as they are; finalizing is for turning a finished collection into one tidy, citable object.
What finalizing does
Finalizing merges everything — every archive created during collection, plus every file still sitting loose — into exactly one file called datapipe-final.zip. When it finishes, that archive is the only file in your Zenodo deposition.
Inside it is the complete folder tree the Psych-DS standard expects, with the data/raw/ paths intact, dataset_description.json at the root and .psychds-ignore alongside it. That is the point of doing it: a provider that cannot store a slash in a filename cannot hold a Psych-DS dataset, but a zip can, so the archive is a valid dataset even though the record it sits in could never have been one.
It is an ordinary zip. Unzip it and you have the dataset. Zenodo also previews zip contents on the record page, so a visitor can see what is inside without downloading it.
Merging a whole study streams every file through DataPipe and back out to your provider, so clicking Finalize starts a background job rather than waiting for the answer. The dashboard shows queued, then running, then the result.
Which providers support it
Finalizing is a Zenodo feature today. It exists to relieve a file-count ceiling, and Zenodo's cap of 100 files per record is the only one DataPipe has to work around.
- Zenodo — supported. Batch archives and loose files are merged into one
datapipe-final.zip. - Google Drive — not applicable. Drive imposes no file-count limit, so there is no ceiling to relieve; your folder can hold a session per file indefinitely, and it stores real folders, so the folder tree is already intact.
- Dataverse — not applicable, for the same reason: no file-count cap that DataPipe enforces, and real folder support.
- OSF — not applicable. OSF is legacy only and no new experiments can be created on it.
The dashboard only offers finalizing where it applies: on Google Drive, Dataverse and OSF experiments the Finalize section is not shown at all, rather than offered and then refused. Switching the experiment off when you are done is the equivalent step there.
The per-provider differences behind this are summarized here. Choosing a provider
Queued uploads must drain first
If any upload for the experiment is still queued or in flight, DataPipe refuses to start finalizing and tells you so: “Some uploads are still in flight.”
This is a protection, not an error. Finalizing merges what your storage provider currently holds, and a queued upload is by definition not there yet — sealing the record now would leave that participant's data outside the final archive permanently. Wait for the queued files panel to empty, then try again.
If an upload does get queued in the narrow window between that check and the merge completing, it is not silently dropped: it is marked failed with a message telling you the experiment was finalized while it was queued, and the file stays downloadable from the queued files panel until seven days after it was queued — or up to fourteen if DataPipe could not deliver the failure notification about it. Download it and add it to your Zenodo deposition by hand.
The queue, its retries and the download controls are covered here. When an upload fails
It cannot be undone
Finalizing is permanent. There is no un-finalize, in the dashboard or anywhere else, and the loose files that went into the archive are deleted from your provider once the archive is verified.
Once an experiment is finalized:
- Data collection is switched off for you. Finalizing turns Accept new data and Accept base64 file uploads off in the same write that seals the record, and the dashboard locks both switches from then on.
- Every submission is rejected with
EXPERIMENT_FINALIZEDregardless. That check runs ahead of the active switch, so the experiment stays closed even if something puts those flags back on outside the dashboard. - Base64 submissions are rejected on the same grounds.
- Condition assignment keeps working: a finalized experiment still hands out condition numbers if something calls the endpoint.
If you might collect more data later, do not finalize. Switch the experiment off instead: that stops new submissions and leaves every option open.
Publishing is still your call
On Zenodo, finalizing prepares the deposition but does not publish it. Publishing the record, and with it issuing the DOI, stays your decision and happens on Zenodo itself.
The same holds everywhere else: DataPipe never publishes anything. A Dataverse dataset created through DataPipe stays a draft until you publish it, and a Drive folder stays as private as you left it. Nothing DataPipe does changes who can see your data.
Visibility and sharing are covered here. Who can see it