⚠️ Known Issue: Table Grid Editor fails after upgrading Jira from 9 to 10 (MS SQL Server)
Applies to: Table Grid Editor for Jira Data Center
Affects: Jira 10.x (after upgrade from Jira 9.x)
Database: Microsoft SQL Server
Status: No permanent fix
Workaround available
🧩 Overview
After upgrading Jira Data Center from version 9 to version 10, some customers using Microsoft SQL Server as their Jira database may encounter one or both of the following problems in Table Grid Editor (TGE):
1️⃣ Issue 1 – Hibernate repeatedly attempts to alter the database schema
After upgrading, Jira logs may show repeated attempts from Hibernate to alter table column types, for example:
ALTER TABLE actions_c20800 ALTER COLUMN id BIGINT
ALTER TABLE actions_c20800 ALTER COLUMN issueId BIGINT
This happens when existing grid tables were created using older Hibernate mappings (from Jira 9 / TGE for Jira 9).
When the grid contains a large amount of data, these repeated alter attempts can cause database locking or performance degradation.
2️⃣ Issue 2 – Cannot insert new rows into an existing grid
When attempting to add a new row into an existing grid (one that was created before upgrading), you may see the following red error message on the Jira issue screen:
Error: could not execute statement [Cannot insert explicit value for identity column in table 'actions_c10400' when IDENTITY_INSERT is set to OFF]
Reason: Cannot insert explicit value for identity column in table 'actions_c10400' when IDENTITY_INSERT is set to OFF.; Failed sql: insert into actions_c10400
⚙️ Note:
The actual table name (e.g., actions_c10400) depends on the configuration of each grid — specifically, the value of the gd.tablename property defined in its grid configuration.
⚙️ Root Cause
This issue is caused by a database schema type mismatch introduced by an upgrade in Hibernate — the ORM framework used by Jira and TGE.
Jira version | Hibernate version | Java |
|---|---|---|
Jira 9 | 3.2.7 |
|
Jira 10 | 6.6.18 |
|
In Jira 9, TGE created its database tables (such as actions_c10400, actions_c10401, etc.) where both id and issueId columns were of type numeric.
After upgrading to Jira 10, Hibernate now expects these columns to be bigint.
This mismatch causes Hibernate to repeatedly try executing ALTER TABLE … ALTER COLUMN statements to convert column types.
However, these updates fail because:
idis a primary key, andissueIdis used in an index.
Moreover, in Jira 9, TGE used Hibernate 3.2.7, which supported inserting explicit values into IDENTITY columns by temporarily setting IDENTITY_INSERT to ON during the database session runtime.
However, Jira 10 only supports Java 17, and the Hibernate library has been upgraded to a newer version that no longer supports this behavior.
This change causes insert operations to fail on existing grid tables, as SQL Server rejects inserts into IDENTITY columns when Hibernate attempts to insert explicit values.
💥 Symptoms
You might be affected by this issue if you observe any of the following:
Symptom | Example message / behavior |
|---|---|
Hibernate continuously logs schema update attempts |
|
Database locking (only on large tables) | SQL Server shows table locks during grid update |
Adding a new grid row fails |
|
Although these symptoms look different, both issues share the same root cause and can be fixed with one common workaround described below.
✅ Workaround (for both issues)
To resolve these issues, you must manually change the column types of both id and issueId columns from numeric to bigint in all affected grid tables.
💡 This single workaround applies to both symptoms described above.
⚠️ Important clarification
Only grids that were originally created while running Jira 9 (and then later upgraded to Jira 10) are affected and require this workaround.
Grids that are created newly after the upgrade to Jira 10 are not impacted, since their database tables are created directly using the new Hibernate version and already have the correct schema structure.
These new grids will work as expected without any manual schema adjustments.
📋 Steps
Shut down Jira.
For each affected grid table (for example:
actions_c20800,actions_c10400, …), execute the following SQL commands on your Microsoft SQL Server database:-------------------------------------------- -- 1️⃣ Change the column type of id -------------------------------------------- ALTER TABLE actions_c20800 ADD tempId BIGINT; UPDATE actions_c20800 SET tempId = id; -- Drop the primary key constraint (replace with actual PK name) ALTER TABLE actions_c20800 DROP CONSTRAINT PK_actions_c20800; -- Drop the original id column ALTER TABLE actions_c20800 DROP COLUMN id; -- Rename temp column to id EXEC sp_RENAME 'actions_c20800.tempId', 'id', 'COLUMN'; -- Set as primary key again ALTER TABLE actions_c20800 ALTER COLUMN id BIGINT NOT NULL; ALTER TABLE actions_c20800 ADD CONSTRAINT PK_actions_c20800 PRIMARY KEY (id); -------------------------------------------- -- 2️⃣ Change the column type of issueId -------------------------------------------- ALTER TABLE actions_c20800 ADD issueId_tmp BIGINT; UPDATE actions_c20800 SET issueId_tmp = issueId; -- Drop index on issueId DROP INDEX actions_iId ON actions_c20800; -- Drop old issueId column ALTER TABLE actions_c20800 DROP COLUMN issueId; -- Rename new column to issueId EXEC sp_rename 'actions_c20800.issueId_tmp', 'issueId', 'COLUMN'; -- Recreate index CREATE INDEX actions_iId ON actions_c20800(issueId);Restart Jira.
After the restart:
Hibernate will detect the schema as consistent (
bigintmatches expected type).The grid tables will function normally.
You will no longer see
ALTER TABLEretries or the “IDENTITY_INSERT” error.
🧠 Technical Notes
This issue only affects Microsoft SQL Server databases.
Customers using PostgreSQL, MySQL, or Oracle are not affected.
The workaround is safe to apply while Jira is offline, as it only changes data types and re-creates constraints/indexes.
Future versions of TGE will not automatically fix this issue during upgrade. Customers upgrading from Jira 9 to Jira 10 will still need to perform the above workaround manually.
This is due to database consistency requirements and the risk of unintended data modifications if automated.
📋 Additional notes
Jira 9 supports Java 8, 11, and 17, while Jira 10 supports Java 17 only.
This Jira upgrade necessitated updating Hibernate and other ORM-related dependencies, which led to the behavioral change described above.The database locking issue in Issue #1 only occurs when the grid table contains a large number of rows.
The workaround is safe to apply and does not affect the integrity of existing data.
🧩 Summary
Jira version | Database | Problem | Root cause | Solution |
|---|---|---|---|---|
Upgrade from Jira 9 → 10 | Microsoft SQL Server | Hibernate tries to alter table, or cannot insert grid row | Hibernate mapping changed ( | Manually change |
📨 Need Help?
If you’re unsure which tables to update or need help applying the workaround, please contact our support team through at this support portal: https://tablegrid.atlassian.net/servicedesk/customer/portal/1
We’ll be happy to guide you through the process.