Delete data from old JSM versions (3.2 and below) to unblock the upgrade
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Problem
If you’re using one of the earlier versions of Jira Service Management (3.2 or below) on Server/Data Center, some data might be incompatible and can block you from upgrading to the latest version or migrating to Jira Service Management Cloud. This often happens when an instance is upgraded without going through versions 3.0 and 3.1, which run important upgrade tasks. Here’s a related issue for more context
You can also use this procedure if you’re seeing the following error:
2019-01-29 02:14:05,217 JIRA-Bootstrap ERROR [bootstrap.lifecycle.server.ServerPluginLifeCycle] '2.0.2' version of Service Desk cannot be upgraded to '3.9.2-REL-0010'. Upgrade to '3.0.0' <= <version> < '3.2.0' first.
com.atlassian.servicedesk.bootstrap.lifecycle.server.UnsatisfiedVersionRequirementException: '2.0.2' version of Service Desk cannot be upgraded to '3.9.2-REL-0010'. Upgrade to '3.0.0' <= <version> < '3.2.0' first.
at com.atlassian.servicedesk.bootstrap.lifecycle.server.UpgradeRequirementsChecker.checkVersionRequirementForUpgrade(UpgradeRequirementsChecker.java:47)
Environment
Jira Service Management (JSM) on 3.2 or any version below.
Solution
Follow these steps to manually remove the Jira Service Management add-on, related directories, and other incompatible data.
Before you begin
Back up your database.
Back up your Jira home directory.
Step 1: Remove the license
Go to Administration > Applications > Versions and licensing.
Click Uninstall next to your Jira Service Management license.
Restart Jira.
Step 2: Remove the Jira Service Management add-on
Go to Administration > Add-ons > Manage add-ons.
Find the Jira Service Management base application, and uninstall it.
Shut down Jira.
Step 3: Remove the files and directories
Go to
<Jira-home-directory>/plugins/installed-plugins
.Remove the following JAR files. You might have different versions of these files, or multiple versions of the same files, hence we’ve added the wildcards (*).
atlassian-chaperone-*.jar atlassian-client-resource-*.jar atlassian-pocketknife-api-commons-plugin-*.jar atlassian-timed-promise-plugin-*.jar jira-email-processor-plugin-*.jar jira-servicedesk-*.jar jira-servicedesk-application-*.jar jira-servicedesk-public-rest-api-plugin-*.jar jira-workinghours-plugin-*.jar jwt-plugin-*.jar psmq-plugin-*.jar querydsl-*-provider-plugin-*.jar servicedesk-approvals-plugin-*.jar servicedesk-automation-modules-plugin-*.jar servicedesk-automation-plugin-*.jar servicedesk-automation-then-webhook-plugin-*.jar servicedesk-canned-responses-plugin-*.jar servicedesk-core-ui-plugin-*.jar servicedesk-frontend-plugin-*.jar servicedesk-internal-base-plugin-*.jar servicedesk-knowledge-base-plugin-*.jar servicedesk-lingo-plugin-*.jar servicedesk-notifications-plugin-*.jar servicedesk-project-ui-plugin-*.jar servicemanagement-reports-plugin-*.jar servicedesk-search-plugin-*.jar servicedesk-variable-substitution-plugin-*.jar
Delete the following directories to clear the cache:
<Jira-home-directory>/plugins/.bundled-plugins <Jira-home-directory>/plugins/.osgi-plugins
Start Jira to make sure it’s still working. If it is, shut it down again. If it’s not, which might happen if incorrect files were removed, restore the database backup and the local home directory, and try again.
Step 4: Drop the database tables
If you haven’t done it already, make sure to back up your database.
Run the following commands to clear any database schema tables from Jira Service Management 2.x and 3.x.
Good to know
Run the commands in the order specified below. Otherwise, you might encounter errors about foreign key constraints.
These are generic drop statements. Make sure to use the SQL syntax appropriate for your database.
If any of the drop commands fail, see the section below the commands that explains how to fix this issue.
DROP TABLE IF EXISTS AO_2C4E5C_MAILGLOBALHANDLER;
DROP TABLE IF EXISTS AO_2C4E5C_MAILHANDLER;
DROP TABLE IF EXISTS AO_2C4E5C_MAILCHANNEL;
DROP TABLE IF EXISTS AO_2C4E5C_MAILCONNECTION;
DROP TABLE IF EXISTS AO_2C4E5C_MAILITEMAUDIT;
DROP TABLE IF EXISTS AO_2C4E5C_MAILITEMCHUNK;
DROP TABLE IF EXISTS AO_2C4E5C_MAILITEM;
DROP TABLE IF EXISTS AO_2C4E5C_MAILRUNAUDIT;
DROP TABLE IF EXISTS AO_54307E_AGENTSIGNATURES;
DROP TABLE IF EXISTS AO_54307E_ASYNCUPGRADERECORD;
DROP TABLE IF EXISTS AO_54307E_CAPABILITY;
DROP TABLE IF EXISTS AO_54307E_CONFLUENCEKBENABLED;
DROP TABLE IF EXISTS AO_54307E_CONFLUENCEKBLABELS;
DROP TABLE IF EXISTS AO_54307E_CONFLUENCEKB;
DROP TABLE IF EXISTS AO_54307E_CSATENTRIES;
DROP TABLE IF EXISTS AO_54307E_CUSTOMGLOBALTHEME;
DROP TABLE IF EXISTS AO_54307E_EMAILCHANNELSETTING;
DROP TABLE IF EXISTS AO_54307E_EMAILSETTINGS;
DROP TABLE IF EXISTS AO_54307E_GOAL;
DROP TABLE IF EXISTS AO_54307E_GROUPTOREQUESTTYPE;
DROP TABLE IF EXISTS AO_54307E_IMAGES;
DROP TABLE IF EXISTS AO_54307E_METRICCONDITION;
DROP TABLE IF EXISTS AO_54307E_PARTICIPANTSETTINGS;
DROP TABLE IF EXISTS AO_54307E_QUEUECOLUMN;
DROP TABLE IF EXISTS AO_54307E_SERIES;
DROP TABLE IF EXISTS AO_54307E_STATUSMAPPING;
DROP TABLE IF EXISTS AO_54307E_THRESHOLD;
DROP TABLE IF EXISTS AO_54307E_TIMEMETRIC;
DROP TABLE IF EXISTS AO_54307E_VIEWPORTFIELDVALUE;
DROP TABLE IF EXISTS AO_54307E_VIEWPORTFIELD;
DROP TABLE IF EXISTS AO_54307E_VIEWPORTFORM;
DROP TABLE IF EXISTS AO_7A2604_HOLIDAY;
DROP TABLE IF EXISTS AO_7A2604_WORKINGTIME;
DROP TABLE IF EXISTS AO_7A2604_CALENDAR;
DROP TABLE IF EXISTS AO_9B2E3B_EXEC_RULE_MSG_ITEM;
DROP TABLE IF EXISTS AO_9B2E3B_IF_COND_CONF_DATA;
DROP TABLE IF EXISTS AO_9B2E3B_IF_COND_EXECUTION;
DROP TABLE IF EXISTS AO_9B2E3B_IF_CONDITION_CONFIG;
DROP TABLE IF EXISTS AO_9B2E3B_IF_EXECUTION;
DROP TABLE IF EXISTS AO_9B2E3B_PROJECT_USER_CONTEXT;
DROP TABLE IF EXISTS AO_9B2E3B_RSETREV_PROJ_CONTEXT;
DROP TABLE IF EXISTS AO_9B2E3B_RSETREV_USER_CONTEXT;
DROP TABLE IF EXISTS AO_9B2E3B_THEN_ACT_CONF_DATA;
DROP TABLE IF EXISTS AO_9B2E3B_THEN_ACT_EXECUTION;
DROP TABLE IF EXISTS AO_9B2E3B_THEN_EXECUTION;
DROP TABLE IF EXISTS AO_9B2E3B_THEN_ACTION_CONFIG;
DROP TABLE IF EXISTS AO_9B2E3B_WHEN_HAND_CONF_DATA;
DROP TABLE IF EXISTS AO_9B2E3B_WHEN_HANDLER_CONFIG;
DROP TABLE IF EXISTS AO_F1B27B_HISTORY_RECORD;
DROP TABLE IF EXISTS AO_F1B27B_KEY_COMPONENT;
DROP TABLE IF EXISTS AO_F1B27B_KEY_COMP_HISTORY;
DROP TABLE IF EXISTS AO_F1B27B_PROMISE;
DROP TABLE IF EXISTS AO_F1B27B_PROMISE_HISTORY CASCADE;
DROP TABLE IF EXISTS AO_54307E_GROUP;
DROP TABLE IF EXISTS AO_54307E_QUEUE;
DROP TABLE IF EXISTS AO_54307E_REPORT;
DROP TABLE IF EXISTS AO_54307E_SERVICEDESK;
DROP TABLE IF EXISTS AO_9B2E3B_IF_THEN;
DROP TABLE IF EXISTS AO_9B2E3B_IF_THEN_EXECUTION;
DROP TABLE IF EXISTS AO_9B2E3B_RULE;
DROP TABLE IF EXISTS AO_9B2E3B_RULESET_REVISION;
DROP TABLE IF EXISTS AO_9B2E3B_RULE_EXECUTION;
DROP TABLE IF EXISTS AO_9B2E3B_RULESET;
DROP TABLE IF EXISTS AO_54307E_VIEWPORT;
DROP TABLE IF EXISTS AO_54307E_CUSTOMTHEME;
If any of your drop commands failed…
If any of the preceding drop commands failed (it most often happens with the AO_54307E_SERVICEDESK table which occur if you had installed the Early access Beta or 1.x versions), run the following set of commands. Once completed, go back to Step 4 and run the original commands again.
Step 4a (Oracle only): Drop sequences
In Oracle, dropping tables does not drop the sequences associated with them; the sequences for the list of tables above will need to be identified and dropped separately.
If any sequences are missed and you experience ORA-00955 errors in your Jira logs afterwards, please refer to Cause 2 in our knowledge base article ORA-00955: Name is already used by an existing object for instructions on how to resolve the errors.
Step 5: Delete data from database tables
Run the following commands to delete the values of the
propertytext
andpropertyentry
tables:delete from propertytext where id in (select id from propertyentry where entity_name like 'com.atlassian.servicedesk%' and propertytype='6'); delete from propertyentry where entity_name like 'com.atlassian.servicedesk%' and propertytype='6';
Start Jira.
Verify that the values you deleted above weren’t created again. If they were, it might mean that one of the JAR files from the beginning of this procedure wasn’t removed. If that’s the case, start the procedure again from Step 3: Remove files and directories.
Result
Your Jira instance should now be clear of any old Jira Service Management data. To install a fresh instance of Jira Service Management, go to Administration > Applications.