Hi there. I am having some trouble setting up a Permalink pid provider on a new Dataverse 6.5. I installed dataverse using the Ansible Playbook, which configures a FAKE doi provider and then manually configured an additional perma pid provider as follows:
# Default set during installation
-Ddataverse.pid.fake.type=FAKE
-Ddataverse.pid.fake.label=Fake DOI Provider
-Ddataverse.pid.fake.authority=10.5072
-Ddataverse.pid.fake.shoulder=FK2/
# My permalink provider
-Ddataverse.pid.perma1.type=perma
-Ddataverse.pid.perma1.label=PermaLink
-Ddataverse.pid.perma1.authority=abc1234
-Ddataverse.pid.perma1.permalink.separator=-
-Ddataverse.pid.perma1.shoulder=ds-
-Ddataverse.pid.perma1.permalink.identifier-generation-style=randomString
-Ddataverse.pid.perma1.permalink.base-url=https://dataverse.abc1234.uni-due.de/
# I overwrote these settings to make perma1 the default provider, but to offer both.
-Ddataverse.pid.providers=fake,perma1
-Ddataverse.pid.default-provider=perma1
Then I removed all PID-related settings via the /api/admin/settings API and restarted payara. Both providers show up in the user interface. Using the FAKE provider works, but when I switch to the perma provider I get the following error in server.log:
CommandException, when attempting to update the dataset: PID Provider UnmanagedPermaLinkProvider is not configured.
edu.harvard.iq.dataverse.engine.command.exception.IllegalCommandException: PID Provider UnmanagedPermaLinkProvider is not configured.
at edu.harvard.iq.dataverse.engine.command.impl.CreateNewDatasetCommand.handlePid(CreateNewDatasetCommand.java:100)
at edu.harvard.iq.dataverse.engine.command.impl.AbstractCreateDatasetCommand.execute(AbstractCreateDatasetCommand.java:134)
at edu.harvard.iq.dataverse.engine.command.impl.AbstractCreateDatasetCommand.execute(AbstractCreateDatasetCommand.java:26)
at edu.harvard.iq.dataverse.EjbDataverseEngineInner.submit(EjbDataverseEngineInner.java:36)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:588)
at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:408)
[...]
Does anyone have an idea what is going wrong here?
Hmm, does this PR help? https://github.com/IQSS/dataverse/pull/11108/files
Unfortunately not :( I tried the way I posted above, the way shown in the PR, and as a legacy provider with only one provider as per the config page. The first two resulted in the error I posted, the latter (https://guides.dataverse.org/en/latest/installation/config.html#configuring-your-dataverse-installation-for-a-single-permalink-provider) resulted in payara crashing on startup with an error similar to the one shown here.
It's weird that you're getting UnmanagedPermaLinkProvider. It must be coming from this class: https://github.com/IQSS/dataverse/blob/v6.5/src/main/java/edu/harvard/iq/dataverse/pidproviders/perma/UnmanagedPermaLinkPidProvider.java
@Henning Timm the person who knows the most about this is Jim Myers but he's not in Zulip. Can you please post to https://groups.google.com/g/dataverse-community ?
I wrote to the mailing list. Thanks for the help @Philip Durbin โ๏ธ
https://groups.google.com/g/dataverse-community/c/1Ec6iT5OKio/m/MbcKyHbuCgAJ looks great. Thanks!
I also opened an issue, including a possible mitigation (for new setups): https://github.com/IQSS/dataverse/issues/11165
Thanks. So from that issue, it looks like you got a certain config working?
Yes, leaving out the shoulder solved the problem. This is perfectly fine for our setup. Thanks for the help!
Sure. In https://github.com/IQSS/dataverse/pull/11108/files I switched from using a shoulder for the FAKE DOI provider to using a separator for the Permalinks provider.
Last updated: Oct 30 2025 at 06:21 UTC