Your Crossref Membership Is Active, but Your DOIs Are Not Registering
You went through the Crossref membership application. You paid the annual fee. You received your DOI prefix. You found the Crossref plugin in OJS and filled in what seemed like the right settings. You published an article and assigned it a DOI.
But when you try to resolve that DOI at doi.org, nothing happens. Or the DOI resolves to an error page. Or your Crossref deposit report shows failures you don't understand. Or worse, OJS shows the DOI as assigned but Crossref has no record of it at all.
A Crossref membership without a correctly configured OJS plugin is like having a postal address with no mail delivery. The infrastructure exists, but nothing is actually moving through it.
The OJS Crossref plugin setup is one of the most technically precise configurations in Open Journal Systems. Every field must match your Crossref account exactly. The base URL must point to your live domain. Test mode must be off in production. Metadata must be complete before deposit. And automatic deposit must be verified, not just enabled, to confirm it is actually firing.
This guide walks you through every setting in the OJS Crossref plugin, explains what each one does, identifies the most common configuration mistakes, and shows you how to verify that DOIs are actually being registered, not just assigned in OJS.
If you want an OJS specialist to configure your Crossref plugin correctly from scratch, visit ojsguru.com for a free consultation.
Understanding How the OJS Crossref Plugin Works
Before touching any settings, it helps to understand what the OJS Crossref plugin actually does, because it does more than most editors realize.
The plugin handles three distinct functions:
DOI assignment, generating and storing DOI strings for articles, issues, and galleys inside OJS. This is purely internal. An assigned DOI in OJS does not exist in Crossref until it is deposited.
Metadata deposit, sending a structured XML file containing your article metadata (title, authors, abstract, ISSN, publication date, DOI) to Crossref's deposit endpoint. This is what actually registers the DOI in Crossref's system.
Resolution URL management, telling Crossref which URL each DOI should resolve to. This is the link between the DOI and your actual article page.
Most configuration problems happen at step two, and the deposit. Editors configure DOI assignment correctly but don't realize deposits are failing because of a credential mismatch, a metadata error, or test mode being left on.
The key distinction to understand is this: a DOI showing in OJS means it has been assigned. A DOI resolving at doi.org means it has been deposited and registered. These are two completely different states and OJS does not always make the difference obvious.
Prerequisites, What You Need Before Configuring the Plugin
Before starting plugin configuration, confirm you have all of the following:
Active Crossref membership, your application has been approved and your annual fee has been paid. Your account is accessible at doi.crossref.org.
Your DOI prefix, a string in the format 10.XXXXX visible in your Crossref account dashboard. You cannot configure the plugin without this.
Your Crossref deposit credentials, your Crossref account username and password. These are the credentials you use to log in to the Crossref admin portal.
Your depositor email, the email address where Crossref sends deposit confirmation and error reports. This should be a monitored address, deposit failure notifications go here.
A registered ISSN, Crossref requires a valid ISSN in your deposit XML. If your journal does not have a registered ISSN, deposits will fail with a validation error.
Your OJS base_url set to your live domain, and the DOI resolution URL is generated from your OJS base_url setting. If base_url still points to localhost or a staging server, every DOI you register will resolve to the wrong URL. Verify this in config.inc.php before proceeding.
Step 1: Enable the DOI Plugin
The DOI plugin and the Crossref export plugin are two separate plugins in OJS. Both must be enabled.
Enable the DOI plugin:
Go to Website Settings → Plugins → Generic Plugins
Find DOI in the plugin list. If it shows as disabled, click Enable.
After enabling, click the blue arrow next to the DOI plugin to access its settings.
DOI plugin settings:
Objects with DOIs:
[x] Articles
[ ] Issues (optional, enable if you want issue-level DOIs)
[ ] Galleys (optional, enable for galley-level DOIs)
DOI Prefix: 10.XXXXX
(Enter your Crossref-assigned prefix exactly as shown in your Crossref account)
DOI Suffix:
( ) Default pattern
( ) Custom pattern
( ) Individual DOI suffix for each published itemChoosing your suffix pattern:
The default OJS suffix pattern generates suffixes automatically based on submission ID. It works but produces DOIs that look like 10.12345/pkp.2847, with no journal identification in the suffix.
A custom pattern gives you more readable DOIs. A commonly used custom pattern is:
%j.v%vi%i.%aThis produces DOIs like 10.12345/jrs.v5i2.247 where:
- %j = journal initials
- %v = volume number
- %i = issue number
- %a = article ID
Choose your pattern before assigning any DOIs. Changing the pattern after DOIs have been assigned creates suffix conflicts for existing articles.
Save your DOI plugin settings before moving to the next step.
Step 2: Enable the Crossref Export Plugin
Go to Website Settings → Plugins → Import/Export Plugins
Find Crossref XML Export Plugin and enable it if not already active.
Once enabled, access the plugin settings by clicking the blue arrow next to it.
Step 3: Configure Crossref Plugin Settings
This is the most critical step. Every field here must be accurate.
Depositor Name: Enter your organization or journal name exactly as it appears in your Crossref member account. This does not need to match your journal title, it is your organization's registered name with Crossref.
Example: University of Research Press
Example: OJS Publishing Society
Example: [Your Name] (for individual publisher members)Depositor Email: Enter the email address where you want Crossref to send deposit confirmations and error reports. This should be a real, monitored address, not a no-reply or generic inbox. Deposit failures are reported here and if nobody reads this email, silent DOI registration failures go undetected.
Example: editor@yourjournal.com
Example: doiregistration@yourinstitution.eduUsername: Your Crossref account login username. This is the username you use to log in to doi.crossref.org, not your email address unless your email is your username.
Password: Your Crossref account password. This is stored in OJS and used to authenticate deposit requests. If you change your Crossref password, update it here immediately, otherwise all subsequent deposits will fail with an authentication error.
Automatic Deposit: Set this to Yes for production journals. With automatic deposit enabled, OJS sends deposit requests to Crossref whenever an article is published. Without it, you must manually trigger deposits for every article, which editors frequently forget to do.
Test Mode: Set this to No for production use. This is one of the most common configuration mistakes.
When Test Mode is On, OJS sends deposits to Crossref's test environment. The deposits appear to succeed. OJS marks DOIs as deposited. But no real DOIs are registered in Crossref's production system. Authors who try to resolve their DOIs find nothing.
Only use Test Mode On during initial setup verification, and turn it Off before publishing any real content.
Save all settings after entering them.
Step 4: Verify Your Configuration With a Test Deposit
Before publishing any real articles with DOIs, verify that your configuration is working correctly using a test deposit.
Temporarily enable Test Mode and select one published article for a manual deposit.
Go to Tools → Import/Export → Crossref XML Export Plugin
You will see a list of articles with their DOI assignment status. Select one article and click Deposit.
After the deposit attempt, check two things:
Check the deposit status in OJS: The article's deposit status should show as successfully submitted. If it shows an error, the error message tells you what went wrong, note it exactly and match it to the error reference section below.
Check your depositor email: Crossref sends a confirmation email after every deposit. In test mode this email comes from Crossref's test system and confirms whether the deposit XML was valid. A successful test email contains no error elements. An unsuccessful one contains specific error codes.
If both checks pass, status shows success and the email confirms valid XML, turn Test Mode Off and you are ready for production deposits.
Step 5: Assign DOIs to Published Articles
With the plugin configured and verified, assign DOIs to your published articles.
For new articles going forward: With automatic deposit enabled, OJS assigns and deposits DOIs automatically when you publish an article. No manual action is required.
For existing published articles without DOIs:
Go to Tools → Import/Export → Crossref XML Export Plugin
The plugin shows all articles and their DOI status. Articles without DOIs show as unassigned. Select all unassigned articles and click Assign DOIs.
After assignment, select the newly assigned articles and click Deposit to register them with Crossref.
For large back catalogs, deposit in batches: If you have hundreds of existing articles, deposit them in batches of 100 to 200 articles rather than all at once. Large batch deposits can time out and produce partial deposits that are difficult to reconcile. Smaller batches complete faster and make error identification straightforward.
Step 6: Verify DOI Resolution After First Production Deposit
After your first production deposit, verify that DOIs are actually resolving.
Take the DOI of a recently deposited article and enter it in your browser:
https://doi.org/10.XXXXX/your-suffix-hereThis should redirect you to your article page within 24 to 48 hours of deposit. New DOI registrations take time to propagate through Crossref's resolution infrastructure, do not be alarmed if resolution takes up to 48 hours on first registration.
If a DOI is not resolving after 48 hours, log in to your Crossref account at doi.crossref.org and check the deposit history for that article. The deposit history shows whether the deposit was received, processed, and whether any errors occurred.
Common OJS Crossref Plugin Errors and How to Fix Them
These are the errors we resolve most frequently when auditing OJS Crossref configurations:
Error: Authentication failed (401 Unauthorized)
Your Crossref username or password in the plugin settings does not match your Crossref account credentials. Log in to doi.crossref.org to confirm your username. Reset your password if needed and update it in the plugin settings immediately.
Error: ISSN not found or invalid
The ISSN entered in your OJS journal settings is not registered in the Crossref system or does not match the format Crossref expects. Verify your ISSN is correctly entered in Journal Settings → Masthead → ISSN. The format must be XXXX-XXXX with the hyphen. If your ISSN is newly registered, allow 48 hours for it to propagate into Crossref's system.
Error: Depositor name is missing
The Depositor Name field in the plugin settings is empty or contains only whitespace. Enter your organization name and save.
Error: DOI already exists
You are attempting to deposit a DOI suffix that is already registered in Crossref, either by your own previous deposit or by another Crossref member. Check your deposit history in the Crossref portal. If it is your own previous deposit, the article metadata may need to be updated rather than redeposited as new.
Error: URL is not valid
The article URL in the deposit XML does not resolve. This almost always means your OJS base_url in config.inc.php is set to localhost, a staging domain, or an incorrect path. Update base_url to your live domain, clear OJS cache, reassign DOIs to the affected articles to regenerate the URLs, and redeposit.
DOIs assigned in OJS but not resolving at doi.org
This is the Test Mode problem. OJS has deposited to Crossref's test environment, not production. Turn Test Mode Off, then manually redeposit the affected articles. Production deposits will register real DOIs.
Automatic deposit not firing
OJS has automatic deposit enabled but articles published after enabling it are not being deposited. Check whether a PHP error is interrupting the deposit process by reviewing the OJS error log immediately after publishing a test article. Also verify that your server's outgoing connections to api.crossref.org on port 443 are not blocked by a firewall.
Deposit succeeds but DOI resolves to wrong page
Your base_url was incorrect at the time of deposit. The DOI was registered with the wrong resolution URL. Log in to your Crossref account, find the affected DOIs in your deposit history, and submit an update deposit with the correct URL. Crossref allows URL updates for registered DOIs at no additional cost.
How to Check Deposit Status in Your Crossref Account
Your Crossref account dashboard gives you full visibility into every deposit your journal has made. This is an underused resource that most editors never check, but it is the most reliable way to confirm that DOI registration is working correctly.
Log in to doi.crossref.org and go to your deposit history. Each deposit shows:
- Date and time of deposit
- Number of DOIs submitted
- Processing status (success, warning, or failure)
- Detailed error report for any failed records
Check your deposit history at least once per issue publication. If you see failures you did not know about, the detailed error report tells you exactly which articles failed and why.
Set your depositor email to a monitored address so that deposit failure notifications reach a real person who can act on them promptly.
OJS Crossref Plugin Configuration Checklist
Use this checklist to verify your complete plugin configuration before going live:
- DOI plugin enabled in Website Settings → Plugins
- DOI prefix entered correctly, format 10.XXXXX
- DOI suffix pattern chosen and applied consistently
- DOIs assigned to Articles (and Issues/Galleys if needed)
- Crossref XML Export Plugin enabled
- Depositor Name entered and matches Crossref account
- Depositor Email is a real, monitored address
- Crossref Username is correct
- Crossref Password is correct and current
- Automatic Deposit set to Yes
- Test Mode set to No for production
- base_url in config.inc.php points to live domain
- Test deposit completed successfully in test mode
- Production deposit verified, DOI resolves at doi.org within 48 hours
- Deposit history checked in Crossref account, with no errors
When to Call in a Professional
The OJS Crossref plugin configuration is precise work. A single incorrect setting produces silent failures, DOIs that appear registered in OJS but don't exist in Crossref, or DOIs that resolve to the wrong URL, or deposits that fail with cryptic error codes that aren't documented clearly in OJS.
Consider professional help when:
- Your DOIs are assigned in OJS but not resolving at doi.org after 48 hours
- Deposit attempts return error codes you can't interpret
- You have a large back catalog that needs retroactive DOI assignment and batch deposit
- You recently migrated from a different domain and existing DOIs are resolving to the old URL
- Automatic deposit was enabled but articles are not being deposited
OJS Guru configures the OJS Crossref plugin as a standard service, including prefix setup, credential verification, test deposit, bulk retroactive assignment for existing articles, and resolution verification. We check every setting, test every deposit, and confirm every DOI resolves correctly before marking the configuration complete.
👉 Get a free consultation at ojsguru.com
Summary
The OJS Crossref plugin setup requires precision at every step, from plugin activation to credential entry to test verification to production confirmation. The most important things to get right are:
- Both the DOI plugin and the Crossref export plugin must be enabled separately
- Every credential field must match your Crossref account exactly
- Test Mode must be Off in production, it is the single most common cause of DOIs that appear registered but don't resolve
- base_url must point to your live domain before any DOIs are deposited
- Automatic deposit must be verified, not just enabled
- Deposit history in your Crossref account must be checked regularly for silent failures
Get these right and your journal will have reliable, automatic DOI registration for every article you publish going forward.
If you want an OJS specialist to configure your Crossref plugin correctly and verify every DOI is resolving, contact OJS Guru at ojsguru.com. We set this up correctly the first time.
OJS Guru is a professional Open Journal Systems service provider specializing in OJS installation, customization, migration, and technical support for research journal publishers in 20+ countries. Visit ojsguru.com to request a free consultation.
