[IGN-10341]Error when using database transaction when a project does not have a default database

Why does a project need a default database connection when using transactions?

txID = system.db.beginTransaction(database = "LocalMYSQL")

query = """
	INSERT INTO test(MyAge)
	VALUE (?)
	"""
s = system.date.toMillis(system.date.now())
system.db.runPrepUpdate(query, [s], tx = txID)
system.db.commitTransaction(txID)
system.db.closeTransaction(txID)

Java Traceback:
Traceback (most recent call last):
File "", line 8, in
INSERT INTO test(MyAge)
VALUE (?)
, [1721058713492], Transaction datasource 'LocalMYSQL', 40dd3b55-0c8e-4529-9d8e-4bac72824631, false, false)

at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.error(AbstractDBUtilities.java:392)

at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.runPrepUpdate(AbstractDBUtilities.java:268)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

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

java.lang.Exception: java.lang.Exception: Error executing system.db.runPrepUpdate(
INSERT INTO test(MyAge)
VALUE (?)
, [1721058713492], Transaction datasource 'LocalMYSQL', 40dd3b55-0c8e-4529-9d8e-4bac72824631, false, false)

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

at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.error(AbstractDBUtilities.java:392)

at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.runPrepUpdate(AbstractDBUtilities.java:268)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

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

at org.python.core.PyReflectedFunction.call(PyReflectedFunction.java:190)

at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction.call(ScriptManager.java:553)

at org.python.core.PyObject.call(PyObject.java:400)

at org.python.pycode._pyx21.f$0(:10)

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

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

at org.python.core.PyCode.call(PyCode.java:18)

at org.python.core.Py.runCode(Py.java:1703)

at org.python.core.Py.exec(Py.java:1747)

at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:277)

at org.python.util.InteractiveInterpreter.runcode(InteractiveInterpreter.java:130)

at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:628)

at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:616)

at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)

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

at java.desktop/javax.swing.SwingWorker.run(Unknown Source)

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

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

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

Caused by: java.lang.Exception: Error executing system.db.runPrepUpdate(
INSERT INTO test(MyAge)
VALUE (?)
, [1721058713492], Transaction datasource 'LocalMYSQL', 40dd3b55-0c8e-4529-9d8e-4bac72824631, false, false)

... 25 more

Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Connection Error: Unable to find project's default datasource.

Because of a coding mistake on our part; the check for "does this database name exist" happens unconditionally (when a DB query is invoked from the client/designer, at least) before the transaction ID is evaluated.