# Error Caused by: java.sql.SQLException: \[SQLITE\_CORRUPT\] The database disk image is malformed (database disk image is malformed)

**URL:** <https://forum.inductiveautomation.com/t/error-caused-by-java-sql-sqlexception-sqlite-corrupt-the-database-disk-image-is-malformed-database-disk-image-is-malformed/67426>\
**Category:** Ignition\
**Tags:** ignition79\
**Created:** [December 9, 2022, 1:03pm UTC](https://forum.inductiveautomation.com/t/error-caused-by-java-sql-sqlexception-sqlite-corrupt-the-database-disk-image-is-malformed-database-disk-image-is-malformed/67426 "2022-12-09T13:03:35Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![victordcq](https://avatars.discourse-cdn.com/v4/letter/v/f6c823/32.png) [@victordcq](https://forum.inductiveautomation.com/u/victordcq)\
**Post date:** [December 9, 2022, 1:03pm UTC](https://forum.inductiveautomation.com/t/error-caused-by-java-sql-sqlexception-sqlite-corrupt-the-database-disk-image-is-malformed-database-disk-image-is-malformed/67426/1 "2022-12-09T13:03:35Z")

</div>

I've had to do some changes to one of the older projects of the company in 7.9

And we had a weird bug a couple of hours after i did an update, but it does not seem related to my code at all, yet i have to take alook at it, eventho i dont know anything about 7.9 😛

Restarting the gateway fixed it.

This seem to have happend on a `system.tag.read()`  
Noticable are the "Caused by: simpleorm.utils.SException$Jdbc: Preparing 'SELECT SQLTag..."  
and " Caused by: java.sql.SQLException: [SQLITE\_CORRUPT] The database disk image is malformed (database disk image is malformed) "

```auto
com.inductiveautomation.ignition.common.script.JythonExecException: Traceback (most recent call last): File "", line 3, in alarmActive File "", line 5, in sendNotification at simpleorm.sessionjdbc.SQueryExecute.prepareStatement(SQueryExecute.java:132) at simpleorm.sessionjdbc.SQueryExecute.executeQuery(SQueryExecute.java:58) at simpleorm.sessionjdbc.SSessionJdbc.queryNoFlush(SSessionJdbc.java:500) at simpleorm.sessionjdbc.SSessionJdbc.query(SSessionJdbc.java:509) at com.inductiveautomation.ignition.gateway.localdb.PersistenceInterfaceImpl.query(PersistenceInterfaceImpl.java:146) at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore._loadTags(InternalTagStore.java:1771) at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore.loadTags(InternalTagStore.java:1720) at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore.getDefinitions(InternalTagStore.java:2174) at com.inductiveautomation.ignition.gateway.sqltags.providers.AbstractStoreBasedTagProvider.wrapTagsToDef(AbstractStoreBasedTagProvider.java:1548) at com.inductiveautomation.ignition.gateway.sqltags.providers.AbstractStoreBasedTagProvider.browse(AbstractStoreBasedTagProvider.java:1451) at com.inductiveautomation.ignition.gateway.sqltags.providers.RedundantProviderWrapper.browse(RedundantProviderWrapper.java:152) at com.inductiveautomation.ignition.gateway.sqltags.SQLTagsManagerImpl.browse(SQLTagsManagerImpl.java:524) at com.inductiveautomation.ignition.gateway.script.ialabs.IALabsTagFunctions._browseTags(IALabsTagFunctions.java:150) at com.inductiveautomation.ignition.gateway.script.ialabs.IALabsTagFunctions.browseTagsImpl(IALabsTagFunctions.java:137) at com.inductiveautomation.ignition.common.script.builtin.ialabs.AbstractIALabsTagFunctions.browseTags(AbstractIALabsTagFunctions.java:29) at sun.reflect.GeneratedMethodAccessor143.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) simpleorm.utils.SException$Jdbc: simpleorm.utils.SException$Jdbc: Preparing 'SELECT SQLTag.SQLTag_ID, SQLTag.ProviderId, SQLTag.OwnerId, SQLTag.Name, SQLTag.Path, SQLTag.Enabled, SQLTag.TagType, SQLTag.DataType, SQLTag.AccessRights, SQLTag.Scanclass FROM SQLTag WHERE (SQLTag.OwnerId > ? ) AND (SQLTag.OwnerId IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ) ORDER BY SQLTag.SQLTag_ID'

at org.python.core.Py.JavaError(Py.java:495)

at org.python.core.Py.JavaError(Py.java:488)

at org.python.core.PyReflectedFunction. __call__ (PyReflectedFunction.java:188)

at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction. __call__ (ScriptManager.java:438)

at org.python.core.PyObject. __call__ (PyObject.java:320)

at org.python.pycode._pyx93771.sendNotification$1(:7)

at org.python.pycode._pyx93771.call_function()

at org.python.core.PyTableCode.call(PyTableCode.java:165)

at org.python.core.PyBaseCode.call(PyBaseCode.java:166)

at org.python.core.PyFunction. __call__ (PyFunction.java:338)

at org.python.pycode._pyx15.alarmActive$1(:3)

at org.python.pycode._pyx15.call_function()

at org.python.core.PyTableCode.call(PyTableCode.java:165)

at org.python.core.PyBaseCode.call(PyBaseCode.java:301)

at org.python.core.PyFunction.function ___call__ (PyFunction.java:376)

at org.python.core.PyFunction. __call__ (PyFunction.java:371)

at org.python.core.PyFunction. __call__ (PyFunction.java:361)

at org.python.core.PyFunction. __call__ (PyFunction.java:356)

at com.inductiveautomation.ignition.common.script.ScriptManager.runFunction(ScriptManager.java:670)

at com.inductiveautomation.ignition.common.sqltags.scripts.TagScriptManager$FunctionInvokerImpl.run(TagScriptManager.java:466)

at com.inductiveautomation.ignition.common.sqltags.scripts.AbstractTagScript.invoke(AbstractTagScript.java:34)

at com.inductiveautomation.ignition.common.sqltags.scripts.TagScriptManager$Task.invoke(TagScriptManager.java:419)

at com.inductiveautomation.ignition.common.sqltags.scripts.TagScriptManager$TagScriptDispatcher.run(TagScriptManager.java:384)

at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:546)

at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Caused by: org.python.core.PyException: Traceback (most recent call last): File "", line 3, in alarmActive File "", line 5, in sendNotification at simpleorm.sessionjdbc.SQueryExecute.prepareStatement(SQueryExecute.java:132) at simpleorm.sessionjdbc.SQueryExecute.executeQuery(SQueryExecute.java:58) at simpleorm.sessionjdbc.SSessionJdbc.queryNoFlush(SSessionJdbc.java:500) at simpleorm.sessionjdbc.SSessionJdbc.query(SSessionJdbc.java:509) at com.inductiveautomation.ignition.gateway.localdb.PersistenceInterfaceImpl.query(PersistenceInterfaceImpl.java:146) at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore._loadTags(InternalTagStore.java:1771) at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore.loadTags(InternalTagStore.java:1720) at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore.getDefinitions(InternalTagStore.java:2174) at com.inductiveautomation.ignition.gateway.sqltags.providers.AbstractStoreBasedTagProvider.wrapTagsToDef(AbstractStoreBasedTagProvider.java:1548) at com.inductiveautomation.ignition.gateway.sqltags.providers.AbstractStoreBasedTagProvider.browse(AbstractStoreBasedTagProvider.java:1451) at com.inductiveautomation.ignition.gateway.sqltags.providers.RedundantProviderWrapper.browse(RedundantProviderWrapper.java:152) at com.inductiveautomation.ignition.gateway.sqltags.SQLTagsManagerImpl.browse(SQLTagsManagerImpl.java:524) at com.inductiveautomation.ignition.gateway.script.ialabs.IALabsTagFunctions._browseTags(IALabsTagFunctions.java:150) at com.inductiveautomation.ignition.gateway.script.ialabs.IALabsTagFunctions.browseTagsImpl(IALabsTagFunctions.java:137) at com.inductiveautomation.ignition.common.script.builtin.ialabs.AbstractIALabsTagFunctions.browseTags(AbstractIALabsTagFunctions.java:29) at sun.reflect.GeneratedMethodAccessor143.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) simpleorm.utils.SException$Jdbc: simpleorm.utils.SException$Jdbc: Preparing 'SELECT SQLTag.SQLTag_ID, SQLTag.ProviderId, SQLTag.OwnerId, SQLTag.Name, SQLTag.Path, SQLTag.Enabled, SQLTag.TagType, SQLTag.DataType, SQLTag.AccessRights, SQLTag.Scanclass FROM SQLTag WHERE (SQLTag.OwnerId > ? ) AND (SQLTag.OwnerId IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ) ORDER BY SQLTag.SQLTag_ID'

... 31 common frames omitted

Caused by: simpleorm.utils.SException$Jdbc: Preparing 'SELECT SQLTag.SQLTag_ID, SQLTag.ProviderId, SQLTag.OwnerId, SQLTag.Name, SQLTag.Path, SQLTag.Enabled, SQLTag.TagType, SQLTag.DataType, SQLTag.AccessRights, SQLTag.Scanclass FROM SQLTag WHERE (SQLTag.OwnerId > ? ) AND (SQLTag.OwnerId IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ) ORDER BY SQLTag.SQLTag_ID'

at simpleorm.sessionjdbc.SQueryExecute.prepareStatement(SQueryExecute.java:132)

at simpleorm.sessionjdbc.SQueryExecute.executeQuery(SQueryExecute.java:58)

at simpleorm.sessionjdbc.SSessionJdbc.queryNoFlush(SSessionJdbc.java:500)

at simpleorm.sessionjdbc.SSessionJdbc.query(SSessionJdbc.java:509)

at com.inductiveautomation.ignition.gateway.localdb.PersistenceInterfaceImpl.query(PersistenceInterfaceImpl.java:146)

at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore._loadTags(InternalTagStore.java:1771)

at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore.loadTags(InternalTagStore.java:1720)

at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore.getDefinitions(InternalTagStore.java:2174)

at com.inductiveautomation.ignition.gateway.sqltags.providers.AbstractStoreBasedTagProvider.wrapTagsToDef(AbstractStoreBasedTagProvider.java:1548)

at com.inductiveautomation.ignition.gateway.sqltags.providers.AbstractStoreBasedTagProvider.browse(AbstractStoreBasedTagProvider.java:1451)

at com.inductiveautomation.ignition.gateway.sqltags.providers.RedundantProviderWrapper.browse(RedundantProviderWrapper.java:152)

at com.inductiveautomation.ignition.gateway.sqltags.SQLTagsManagerImpl.browse(SQLTagsManagerImpl.java:524)

at com.inductiveautomation.ignition.gateway.script.ialabs.IALabsTagFunctions._browseTags(IALabsTagFunctions.java:150)

at com.inductiveautomation.ignition.gateway.script.ialabs.IALabsTagFunctions.browseTagsImpl(IALabsTagFunctions.java:137)

at com.inductiveautomation.ignition.common.script.builtin.ialabs.AbstractIALabsTagFunctions.browseTags(AbstractIALabsTagFunctions.java:29)

at sun.reflect.GeneratedMethodAccessor143.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.python.core.PyReflectedFunction. __call__ (PyReflectedFunction.java:186)

... 28 common frames omitted

Caused by: java.sql.SQLException: [SQLITE_CORRUPT] The database disk image is malformed (database disk image is malformed)

at org.sqlite.core.DB.newSQLException(DB.java:890)

at org.sqlite.core.DB.newSQLException(DB.java:901)

at org.sqlite.core.DB.throwex(DB.java:868)

at org.sqlite.core.NativeDB.prepare(Native Method)

at org.sqlite.core.DB.prepare(DB.java:211)

at org.sqlite.core.CorePreparedStatement.(CorePreparedStatement.java:40)

at org.sqlite.jdbc3.JDBC3PreparedStatement.(JDBC3PreparedStatement.java:29)

at org.sqlite.jdbc4.JDBC4PreparedStatement.(JDBC4PreparedStatement.java:18)

at org.sqlite.jdbc4.JDBC4Connection.prepareStatement(JDBC4Connection.java:47)

at org.sqlite.jdbc3.JDBC3Connection.prepareStatement(JDBC3Connection.java:254)

at com.inductiveautomation.ignition.gateway.localdb.sqlite.SingleConnectionDatasource$ProtectedConnection.prepareStatement(SingleConnectionDatasource.java:224)

at com.inductiveautomation.ignition.gateway.localdb.DelegatingDataSource$DelegatingConnection.prepareStatement(DelegatingDataSource.java:236)

at simpleorm.sessionjdbc.SQueryExecute.prepareStatement(SQueryExecute.java:129)

```

Maybe related,  
It also seems that when i do an update, the wrapper.log file stops adding new things. Though i do still see new logs in the main/web/status/diag.logviewer.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/3/43d6167837260e73ab570023783bdbb20df4c6f0.png)

ps: im going on holidays for 3 weeks so i'm probably not going to reply on this a lot.  
Just hoping someone had an idea

---

<div class="post-metadata">

**Author:** ![victordcq](https://avatars.discourse-cdn.com/v4/letter/v/f6c823/32.png) [@victordcq](https://forum.inductiveautomation.com/u/victordcq)\
**Post date:** [December 9, 2022, 1:24pm UTC](https://forum.inductiveautomation.com/t/error-caused-by-java-sql-sqlexception-sqlite-corrupt-the-database-disk-image-is-malformed-database-disk-image-is-malformed/67426/2 "2022-12-09T13:24:06Z")

</div>

took a look into the data/db folder and found this...

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/6/0/603b0f2eff3087760caf6445333356c919e238a4.png)  
seems to match the hour...  
with what can i open the idb file?

i tried sqlite and sqlite said it failed to open because it was "malformed"

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [December 9, 2022, 4:36pm UTC](https://forum.inductiveautomation.com/t/error-caused-by-java-sql-sqlexception-sqlite-corrupt-the-database-disk-image-is-malformed-database-disk-image-is-malformed/67426/3 "2022-12-09T16:36:50Z")

</div>

> [@victordcq](#):
>
> i tried sqlite and sqlite said it failed to open because it was "malformed"

You need to create a new sqlite DB. You _might_ be able to salvage some data:

> <https://stackoverflow.com/questions/5274202/sqlite3-database-or-disk-is-full-the-database-disk-image-is-malformed/5316540#5316540>

---

<div class="post-metadata">

**Author:** ![victordcq](https://avatars.discourse-cdn.com/v4/letter/v/f6c823/32.png) [@victordcq](https://forum.inductiveautomation.com/u/victordcq)\
**Post date:** [December 10, 2022, 1:29pm UTC](https://forum.inductiveautomation.com/t/error-caused-by-java-sql-sqlexception-sqlite-corrupt-the-database-disk-image-is-malformed-database-disk-image-is-malformed/67426/4 "2022-12-10T13:29:57Z")

</div>

thanks, i'll give it a try when im back from the holiday if it doesnt happen again and i get called before that xd

---

<div class="post-metadata">

**Author:** ![victordcq](https://avatars.discourse-cdn.com/v4/letter/v/f6c823/32.png) [@victordcq](https://forum.inductiveautomation.com/u/victordcq)\
**Post date:** [November 22, 2023, 1:00pm UTC](https://forum.inductiveautomation.com/t/error-caused-by-java-sql-sqlexception-sqlite-corrupt-the-database-disk-image-is-malformed-database-disk-image-is-malformed/67426/5 "2023-11-22T13:00:13Z")

</div>

a year later something similar like this happend again.  
This time it was  
Caused by: java.sql.SQLException: [SQLITE\_NOTADB] File opened that is not a database file (file is encrypted or is not a database)

I was saving a couple of times in short succesion... might be the cause that it tried to look for a file that was still in progress of being made when saving?

the wrapper.log does not contain these messages, yet i see them on the status gateway screen.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/d/adae6ea9b57a81be98ba5f1fd244339b200f995f.png)  
Its followed by a bunch of similar errors for tag services and stuff

it has this faulted .idb file again, this time it opens, i see some traces of loggs, som queries and a storage of usernames... but most of it is unreadable. The software i used to open it said it was of a different version so maybe thats why.

Anyways restart solved it. Just logging it here incase someone else has this
