Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Navigate to Settings > System > Logging and Profiling

  2. Find the Default Loggers section

  3. Click the Configure button

  4. Add com.railsware.service.TemplateService package with DEBUG logging level

  5. Add com.railsware.service.ChecklistService package with DEBUG logging level

  6. Check that you have templates with different trigger types

  7. Once template was applied automatically to an issue check the atlassian-jira.log file

The most common issues with the way how to troubleshoot them, and possible solutions.

...

Problem

...

Probable Cause

...

Possible Solution

...

Not able to add new checklist items. Here is what is logged in the browser consolde

...

Migration logs

  • Location: /JIRA_HOME/log/smart-checklist-migration.log

OR

  • download via the link: /plugins/servlet/railsware/migrationlog

OR

  • download by the link on the Global Settings tab after Storage migration is completed

OR

  • download on the Import Checklists tab after migration from another app is completed

The most common issues with the way how to troubleshoot them, and possible solutions.

Problem

Probable Cause

Possible Solution

1

Not able to add new checklist items. Here is what is logged in the browser consolde

PUT https://[instance]/rest/railsware/1.0/checklist/-1/item 500
{errorMessage: "bundle [com.railsware.rw-smart-checklist-biz]"}

This error can happen anytime the database user has not be granted the needed permissions, and JIRA is expected to create a new foreign key constraint.

Explained here

https://confluence.atlassian.com/jirakb/com-mysql-jdbc-exceptions-jdbc4-mysqlsyntaxerrorexception-references-command-denied-to-user-872266070.html

Grant proper permisisons to Jira User by executing SQL command

Code Block
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,ALTER,INDEX on <JIRADB>.* TO '<USERNAME>'@'<JIRA_SERVER_HOSTNAME>' IDENTIFIED BY '<PASSWORD>';

Note: you can use 3rd party addon, like Database Explorer in order to execute these queries

2

Checklist statuses are not available

Conflict with settigns left after prevous version of Smart Addon that was installed on this instance

  1. Stop the Jira instance

  2. Delete the following hidden plugin cache directories (just these two):

    1. JIRA_HOME/plugins/.bundled-plugins

    2. JIRA_HOME/plugins/.osgi-plugins

  3. Restart JIRA

3

"Uncaught DOMException: Permission denied to access property "document" on cross-origin object" in the JavaScript”

message appears when trying an import checklist from a Template

Jira version 8.12

Known bug introduced by Atlassian in Jira v 8.12

Fixed in Jira 8.12.3, 8.13.1

More details: https://jira.atlassian.com/browse/JRASERVER-71747

Upgrade your Jira to 8.12.3, 8.13.1 or higher version.

4

Checklist item could not be added. The following error shown in Jira log:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes at com.atlassian.activeobjects.internal.EntityManagedActiveObjects.migrate(EntityManagedActiveObjects.java:53) at com.railsware.ao.upgrade.v2.MigrateProjectTemplates.upgrade(MigrateProjectTemplates.java:59) at com.atlassian.activeobjects.internal.ActiveObjectUpgradeManagerImpl$1.doInTransaction(ActiveObjectUpgradeManagerImpl.java:68) at

Reproduced on

  • Jira v7.6

  • MySQL DataBase v5.7

MySQL DB was not set properly

Check if mysql DB has set as suggested by Atlassian: https://confluence.atlassian.com/adminjiraserver/connecting-jira-applications-to-mysql-5-7-966063305.html

Especially

  • character_set_server=utf8mb4

  • innodb_large_prefix=ON

5

Using “Clone” Issue doesn’t copy “Checklists” field content to the newly created issue.

“Checklists” field is not added to the Projects, where Clone operation is executed.

  • Go to Issues → Custom Fields → search for ”Checklists“ field → Configure

  • Check Applicable contexts for scheme

  • Click “Edit Configuration”

  • Go to “Choose applicable context”

  • Make sure there selected  “Global context. Apply to all issues in Jira.”

  • Even if it is - Click “Modify

  • Now, the cloning should work properly

Note: For users who started using checklist fro m version 5.5.0 that should already been fixed.

...

  1. Detect templates with duplicated items
    SELECT "ID" as tempalte_id, "NAME" as template_name, "CHECKLIST_ID" as "CHECKLIST_ID" FROM "AO_C2A220_TEMPLATE" acat
    WHERE "CHECKLIST_ID" IN (
    SELECT sub."CHECKLIST_ID"
    FROM ( SELECT "
    SELECT "ID" as tempalte_id, "IMPORT_TYPE", "NAME" as template_name, "CHECKLIST_ID" as "CHECKLIST_ID" FROM "AO_C2A220_TEMPLATE" acat
    WHERE "CHECKLIST_ID" IN (
    SELECT sub."CHECKLIST_ID"
    FROM ( SELECT "CHECKLIST_ID", "VALUE", COUNT("VALUE") AS count_values
    FROM "AO_C2A220_ITEM" acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    ) AS sub
    GROUP BY sub."CHECKLIST_ID"
    HAVING COUNT(sub."VALUE") = SUM(sub.count_values) / 2 );

  2. Delete item details. The checklist ids can be found in the result of the first query.
    delete from "AO_C2A220_QUOTE" where "ITEM_ID" in (
    select min from( SELECT MIN("ID"),"CHECKLIST_ID", "VALUE", COUNT("VALUE") AS count_values
    FROM "AO_C2A220_ITEM" acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    having COUNT("VALUE") > 1
    -- and "CHECKLIST_ID" = 11 -- ADD THIS CONDITION ALSO TO delete checklist by checklist, not all at once ) as abc
    ) ;
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  3. Delete item assignee. The checklist ids can be found in the result of the first query.
    delete from "AO_C2A220_ASSIGNEE" where "ITEM_ID" in (
    select min from( SELECT MIN("ID"),"CHECKLIST_ID", "VALUE", COUNT("VALUE") AS count_values
    FROM "AO_C2A220_ITEM" acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    having COUNT("VALUE") > 1
    -- and "CHECKLIST_ID" = 11 -- ADD THIS CONDITION ALSO TO delete checklist by checklist, not all at once ) as abc
    ) ;
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  4. Status
    colourYellow
    titleOptional
    Delete linked items - needed only for Linked templates that are imported to the issues (IMPORT_TYPE - LINKED). The checklist ids can be found in the result of the first query.
    delete from "AO_C2A220_LINKED_ITEM" where "ITEM_ID" in (
    select min from( SELECT MIN("ID"),"CHECKLIST_ID", "VALUE", COUNT("VALUE") AS count_values
    FROM "AO_C2A220_ITEM" acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    having COUNT("VALUE") > 1
    -- and "CHECKLIST_ID" = 11 -- ADD THIS CONDITION ALSO TO delete checklist by checklist, not all at once ) as abc
    ) ;
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  5. Delete duplicate items. The checklist ids can be found in the result of the first query.
    delete from "AO_C2A220_ITEM" where "ID" IN(
    select min from(
    SELECT MIN("ID"),"CHECKLIST_ID", "VALUE", COUNT("VALUE") AS count_values
    FROM "AO_C2A220_ITEM" acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    having COUNT("VALUE") > 1
    -- and "CHECKLIST_ID" = 11 -- ADD THIS CONDITION ALSO TO delete checklist by checklist, not all at once ) as abc
    );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  6. Repeat steps 2, 3, and 4 (using "CHECKLIST_ID" = your value) as many times as there were templates found in the first query

Oracle

  1. Detect templates with duplicated items
    SELECT "ID" AS template_id, "IMPORT_TYPE", "NAME" AS template_name, "CHECKLIST_ID"
    FROM "AO_C2A220_TEMPLATE" acat
    WHERE "CHECKLIST_ID" IN (
    SELECT sub."CHECKLIST_ID"
    FROM (
    SELECT "CHECKLIST_ID", "VALUE", COUNT("VALUE") AS count_values
    FROM "AO_C2A220_ITEM" acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    ) sub
    GROUP BY sub."CHECKLIST_ID"
    HAVING COUNT(sub."VALUE") = SUM(sub.count_values) / 2 );

  2. Delete item details. The checklist ids can be found in the result of the first query.
    DELETE FROM "AO_C2A220_QUOTE"
    WHERE "ITEM_ID" IN (
    SELECT min_id FROM (
    SELECT MIN("ID") AS min_id, "CHECKLIST_ID", "VALUE", COUNT("VALUE") AS count_values FROM "AO_C2A220_ITEM" acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    HAVING COUNT("VALUE") > 1
    -- AND "CHECKLIST_ID" = 11 ) );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  3. Delete item assignee. The checklist ids can be found in the result of the first query.
    DELETE FROM "AO_C2A220_ASSIGNEE"
    WHERE "ITEM_ID" IN (
    SELECT min_id FROM (
    SELECT MIN("ID") AS min_id, "CHECKLIST_ID", "VALUE", COUNT("VALUE") AS count_values FROM "AO_C2A220_ITEM" acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    HAVING COUNT("VALUE") > 1
    -- AND "CHECKLIST_ID" = 11 ) );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  4. Status
    colourYellow
    titleOptional
    Delete linked items - needed only for Linked templates that are imported to the issues (IMPORT_TYPE - LINKED). The checklist ids can be found in the result of the first query.
    DELETE FROM "AO_C2A220_LINKED_ITEM"
    WHERE "ITEM_ID" IN (
    SELECT min_id FROM (
    SELECT MIN("ID") AS min_id, "CHECKLIST_ID", "VALUE", COUNT("VALUE") AS count_values FROM "AO_C2A220_ITEM" acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    HAVING COUNT("VALUE") > 1
    -- AND "CHECKLIST_ID" = 11 ) );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  5. Delete duplicate items. The checklist ids can be found in the result of the first query.
    DELETE FROM "AO_C2A220_ITEM"
    WHERE "ID" IN (
    SELECT min_id FROM (
    SELECT MIN("ID") AS min_id, "CHECKLIST_ID", "VALUE", COUNT("VALUE") AS count_values
    FROM "AO_C2A220_ITEM" acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    HAVING COUNT("VALUE") > 1
    ) AS sub
    GROUP BY sub.-- AND "CHECKLIST_ID" = 11 ) );
    where for "CHECKLIST_ID"
    HAVING COUNT(sub."VALUE") = SUM(sub.count_values) / 2 );Delete item details. The checklist ids can be found in result of the first query.
    delete from "AO_C2A220_QUOTE" where "ITEM_ID" in (
    select min from( SELECT MIN("ID"),"CHECKLIST_ID", "VALUE", COUNT("VALUE"= 11 replace 11 with the value from the first query

  6. Repeat steps 2, 3, and 4 (using "CHECKLIST_ID" = your value) as many times as there were templates found in the first query

MySQL

  1. Detect templates with duplicated items
    SELECT `ID` AS template_id, `IMPORT_TYPE`, `NAME` AS template_name, `CHECKLIST_ID`
    FROM `AO_C2A220_TEMPLATE` acat
    WHERE `CHECKLIST_ID` IN (
    SELECT sub.`CHECKLIST_ID`
    FROM (
    SELECT `CHECKLIST_ID`, `VALUE`, COUNT(`VALUE`) AS count_values
    FROM "AO`AO_C2A220_ITEM" ITEM` acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    having COUNT("VALUE") > 1
    -- and "CHECKLIST_ID" = 11 -- ADD THIS CONDITION ALSO TO delete checklist by checklist, not all at once ) ) ;
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first queryDelete duplicate items`CHECKLIST_ID`, `VALUE`
    ) sub
    GROUP BY sub.`CHECKLIST_ID`
    HAVING COUNT(sub.`VALUE`) = SUM(sub.count_values) / 2 );

  2. Delete item details. The checklist ids can be found in result of the first query.
    delete from "AO_C2A220_ITEM" where "ID" IN(
    select min from(
    SELECT MIN("ID"),"CHECKLIST_ID", "VALUE", COUNT("VALUE") AS count_values
    FROM "AO_C2A220_ITEM" acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    having COUNT("VALUE") > 1
    -- and "CHECKLIST_ID" = 11 -- ADD THIS CONDITION ALSO TO delete checklist by checklist, not all at once ) );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  3. Repeat step 2 and 3 (using "CHECKLIST_ID" = your value) as many times as there were templates found in the first query

Oracle

  1. Detect templates with duplicated items
    SELECT "ID" AS template_id, "NAME" AS template_name, "CHECKLIST_ID"
    FROM "AO_C2A220_TEMPLATE" acat
    WHERE "CHECKLIST_ID" IN (
    SELECT sub."CHECKLIST_ID"
    FROM (
    SELECT "CHECKLIST_ID", "VALUE", COUNT("VALUE") AS count_values
    FROM "AO_C2A220_ITEM" acai
    GROUP BY "CHECKLIST_ID", "VALUE"
    ) sub
    GROUP BY sub."CHECKLIST_ID"
    HAVING COUNT(sub."VALUE") = SUM(sub.count_values) / 2 );

  2. Delete item detailsthe result of the first query.
    DELETE FROM `AO_C2A220_QUOTE`
    WHERE `ITEM_ID` IN (
    SELECT min_id FROM (
    SELECT MIN(`ID`) AS min_id, `CHECKLIST_ID`, `VALUE`, COUNT(`VALUE`) AS count_values FROM `AO_C2A220_ITEM` acai
    GROUP BY `CHECKLIST_ID`, `VALUE`
    HAVING COUNT(`VALUE`) > 1
    -- AND `CHECKLIST_ID` = 11 ) AS subquery );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  3. Delete item assignee. The checklist ids can be found in the result of the first query.
    DELETE FROM `AO_C2A220_ASSIGNEE`
    WHERE `ITEM_ID` IN (
    SELECT min_id FROM (
    SELECT MIN(`ID`) AS min_id, `CHECKLIST_ID`, `VALUE`, COUNT(`VALUE`) AS count_values FROM `AO_C2A220_ITEM` acai
    GROUP BY `CHECKLIST_ID`, `VALUE`
    HAVING COUNT(`VALUE`) > 1
    -- AND `CHECKLIST_ID` = 11 ) AS subquery );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  4. Status
    colourYellow
    titleOptional
    Delete linked items - needed only for Linked templates that are imported to the issues (IMPORT_TYPE - LINKED). The checklist ids can be found in the result of the first query.
    DELETE FROM "AO`AO_C2A220_LINKED_QUOTE" ITEM`
    WHERE "ITEM`ITEM_ID" ID` IN (
    SELECT min_id FROM (
    SELECT MIN("ID"`ID`) AS min_id, "CHECKLIST`CHECKLIST_ID", "VALUE"ID`, `VALUE`, COUNT("VALUE"`VALUE`) AS count_values FROM "AO`AO_C2A220_ITEM" ITEM` acai
    GROUP BY "CHECKLIST`CHECKLIST_ID", "VALUE" ID`, `VALUE`
    HAVING COUNT("VALUE"`VALUE`) > 1
    -- AND "CHECKLIST`CHECKLIST_ID" ID` = 11 ) AS subquery );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  5. Delete duplicate items. The checklist ids can be found in the result of the first query.
    DELETE FROM "AO`AO_C2A220_ITEM" ITEM`
    WHERE "ID" `ID` IN (
    SELECT min_id FROM (
    SELECT MIN("ID"`ID`) AS min_id, "CHECKLIST`CHECKLIST_ID", "VALUE"ID`, `VALUE`, COUNT("VALUE"`VALUE`) AS count_values
    FROM "AO`AO_C2A220_ITEM" ITEM` acai
    GROUP BY "CHECKLIST`CHECKLIST_ID", "VALUE" ID`, `VALUE`
    HAVING COUNT("VALUE"`VALUE`) > 1
    -- AND "CHECKLIST`CHECKLIST_ID" ID` = 11 ) AS subquery );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  6. Repeat step steps 2, 3, and 3 4 (using "CHECKLIST_ID" = your value) as many times as there were templates found in the first query

MySQLMicrosoft SQL

  1. Detect templates with duplicated items
    SELECT `ID` AS template_id, `NAME` AS template_name, `CHECKLIST_ID`
    FROM `AO_C2A220_TEMPLATE` acat
    WHERE `CHECKLIST_ID` IN (
    SELECT sub.`CHECKLIST_ID`
    FROM (
    SELECT `CHECKLIST_ID`, `VALUE`, COUNT(`VALUE`) AS count_values
    FROM `AO_C2A220_ITEM` acai
    GROUP BY `CHECKLIST_ID`, `VALUE`
    ) sub
    GROUP BY sub.`CHECKLIST_ID`
    HAVING COUNT(sub.`VALUE`) = SUM(sub.count_values) / 2 );

  2. Delete item details. The checklist ids can be found in the result of the first query.
    DELETE FROM `AO_C2A220_QUOTE`
    WHERE `ITEM_ID` IN (
    SELECT min_id FROM (
    SELECT MIN(`ID`) AS min_id, `CHECKLIST_ID`, `VALUE`, COUNT(`VALUE`) AS count_values FROM `AO_C2A220_ITEM` acai
    GROUP BY `CHECKLIST_ID`, `VALUE`
    HAVING COUNT(`VALUE`) > 1
    -- AND `CHECKLIST_ID` = 11 ) AS subquery );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  3. Delete duplicate items[ID] AS template_id, [IMPORT_TYPE], [NAME] AS template_name, [CHECKLIST_ID]
    FROM [AO_C2A220_TEMPLATE] acat
    WHERE [CHECKLIST_ID] IN (
    SELECT sub.[CHECKLIST_ID]
    FROM (
    SELECT [CHECKLIST_ID], [VALUE], COUNT([VALUE]) AS count_values
    FROM [AO_C2A220_ITEM] acai
    GROUP BY [CHECKLIST_ID], [VALUE]
    ) sub
    GROUP BY sub.[CHECKLIST_ID]
    HAVING COUNT(sub.[VALUE]) = SUM(sub.count_values) / 2 );

  4. Delete item details. The checklist ids can be found in the result of the first query.
    DELETE FROM `AO[AO_C2A220_ITEM` QUOTE]
    WHERE `ID` [ITEM_ID] IN (
    SELECT min_id FROM (
    SELECT MIN(`ID`[ID]) AS min_id, `CHECKLIST[CHECKLIST_ID`, `VALUE`ID], [VALUE], COUNT(`VALUE`[VALUE]) AS count_values
    FROM `AO[AO_C2A220_ITEM` ITEM] acai
    GROUP BY `CHECKLIST[CHECKLIST_ID`, `VALUE` ID], [VALUE]
    HAVING COUNT(`VALUE`[VALUE]) > 1
    -- AND `CHECKLIST[CHECKLIST_ID` ID] = 11 ) AS subquery );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  5. Repeat step 2 and 3 (using "CHECKLIST_ID" = your value) as many times as there were templates found in Delete item assignee. The checklist ids can be found in the result of the first query

Microsoft SQL

  1. Detect templates with duplicated items
    SELECT [ID] AS template_id, [NAME] AS template_name, [CHECKLIST_ID]
    .
    DELETE FROM [AO_C2A220_TEMPLATEASSIGNEE] acat
    WHERE [CHECKLISTITEM_ID] IN (
    SELECT min_id FROM (
    SELECT sub.MIN([CHECKLIST_ID]
    FROM (
    SELECT ) AS min_id, [CHECKLIST_ID], [VALUE], COUNT([VALUE]) AS count_values
    FROM [AO_C2A220_ITEM] acai
    GROUP BY [CHECKLIST_ID], [VALUE]
    ) sub
    GROUP BY sub.[CHECKLIST_ID]
    HAVING COUNT(sub.[VALUE]) = SUM(sub.count_values) / 2 );Delete item detailsHAVING COUNT([VALUE]) > 1
    -- AND [CHECKLIST_ID] = 11 ) AS subquery );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  2. Status
    colourYellow
    titleOptional
    Delete linked items - needed only for Linked templates that are imported to the issues (IMPORT_TYPE - LINKED). The checklist ids can be found in the result of the first query.
    DELETE FROM [AO_C2A220_LINKED_QUOTEITEM]
    WHERE [ITEM_ID] IN (
    SELECT min_id FROM (
    SELECT MIN([ID]) AS min_id, [CHECKLIST_ID], [VALUE], COUNT([VALUE]) AS count_values FROM [AO_C2A220_ITEM] acai
    GROUP BY [CHECKLIST_ID], [VALUE]
    HAVING COUNT([VALUE]) > 1
    -- AND [CHECKLIST_ID] = 11 ) AS subquery );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  3. Delete duplicate items. The checklist ids can be found in the result of the first query.
    DELETE FROM [AO_C2A220_ITEM]
    WHERE [ID] IN (
    SELECT min_id FROM (
    SELECT MIN([ID]) AS min_id, [CHECKLIST_ID], [VALUE], COUNT([VALUE]) AS count_values FROM [AO_C2A220_ITEM] acai
    GROUP BY [CHECKLIST_ID], [VALUE]
    HAVING COUNT([VALUE]) > 1
    -- AND [CHECKLIST_ID] = 11 ) AS subquery );
    where for "CHECKLIST_ID" = 11 replace 11 with the value from the first query

  4. Repeat step steps 2, 3, and 3 4 (using "CHECKLIST_ID" = your value) as many times as there were templates found in the first query

...