Error getting list application due to sql error (mysql)
-
When accessing app list in admin, it says.
FusionAuth encountered an unexpected error. Please review the troubleshooting guide found in the documentation for assistance and the available support channels.
here's the trace:
org.apache.ibatis.exceptions.PersistenceException: fusionauth-fusionauth-1 | ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '>> '$.state' = 'Active'' at line 8 fusionauth-fusionauth-1 | ### The error may exist in io/fusionauth/api/domain/ApplicationMapper.xml fusionauth-fusionauth-1 | ### The error may involve defaultParameterMap fusionauth-fusionauth-1 | ### The error occurred while setting parameters fusionauth-fusionauth-1 | ### SQL: SELECT COUNT(*) FROM applications AS a WHERE LOWER(a.name) LIKE ? AND a.data ->> '$.state' = ? fusionauth-fusionauth-1 | ### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '>> '$.state' = 'Active'' at line 8 fusionauth-fusionauth-1 | at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) fusionauth-fusionauth-1 | at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:156) fusionauth-fusionauth-1 | at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) fusionauth-fusionauth-1 | at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) fusionauth-fusionauth-1 | at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75) fusionauth-fusionauth-1 | at jdk.internal.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) fusionauth-fusionauth-1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) fusionauth-fusionauth-1 | at java.base/java.lang.reflect.Method.invoke(Method.java:568) fusionauth-fusionauth-1 | at org.apache.ibatis.session.SqlSessionManager$SqlSessionInterceptor.invoke(SqlSessionManager.java:355) fusionauth-fusionauth-1 | at jdk.proxy2/jdk.proxy2.$Proxy99.selectOne(Unknown Source) fusionauth-fusionauth-1 | at org.apache.ibatis.session.SqlSessionManager.selectOne(SqlSessionManager.java:164) fusionauth-fusionauth-1 | at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:87) fusionauth-fusionauth-1 | at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:142) fusionauth-fusionauth-1 | at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) fusionauth-fusionauth-1 | at jdk.proxy2/jdk.proxy2.$Proxy118.retrieveCountByCriteria(Unknown Source) fusionauth-fusionauth-1 | at io.fusionauth.api.service.system.DefaultApplicationReaderService.search(DefaultApplicationReaderService.java:107) fusionauth-fusionauth-1 | at io.fusionauth.app.action.api.application.SearchAction.search(SearchAction.java:79) fusionauth-fusionauth-1 | at io.fusionauth.app.action.api.BaseSearchAPIAction.post(BaseSearchAPIAction.java:56) fusionauth-fusionauth-1 | at jdk.internal.reflect.GeneratedMethodAccessor67.invoke(Unknown Source) fusionauth-fusionauth-1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) fusionauth-fusionauth-1 | at java.base/java.lang.reflect.Method.invoke(Method.java:568) fusionauth-fusionauth-1 | at org.primeframework.mvc.util.ReflectionUtils.invoke(ReflectionUtils.java:443) fusionauth-fusionauth-1 | at org.primeframework.mvc.action.DefaultActionInvocationWorkflow.execute(DefaultActionInvocationWorkflow.java:77) fusionauth-fusionauth-1 | at org.primeframework.mvc.action.DefaultActionInvocationWorkflow.perform(DefaultActionInvocationWorkflow.java:60) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.message.DefaultMessageWorkflow.perform(DefaultMessageWorkflow.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.validation.DefaultValidationWorkflow.perform(DefaultValidationWorkflow.java:45) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.security.DefaultSecurityWorkflow.perform(DefaultSecurityWorkflow.java:79) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.parameter.DefaultPostParameterWorkflow.perform(DefaultPostParameterWorkflow.java:49) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.content.DefaultContentWorkflow.perform(DefaultContentWorkflow.java:74) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.parameter.DefaultParameterWorkflow.perform(DefaultParameterWorkflow.java:58) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.parameter.DefaultURIParameterWorkflow.perform(DefaultURIParameterWorkflow.java:92) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.scope.DefaultScopeRetrievalWorkflow.perform(DefaultScopeRetrievalWorkflow.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.action.DefaultActionMappingWorkflow.perform(DefaultActionMappingWorkflow.java:119) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.security.DefaultSavedRequestWorkflow.perform(DefaultSavedRequestWorkflow.java:65) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.cors.CORSRequestWorkflow.perform(CORSRequestWorkflow.java:65) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.DefaultMVCWorkflow.perform(DefaultMVCWorkflow.java:108) fusionauth-fusionauth-1 | at org.primeframework.mvc.PrimeMVCRequestHandler.handle(PrimeMVCRequestHandler.java:73) fusionauth-fusionauth-1 | at io.fusionauth.http.server.HTTPWorker.run(HTTPWorker.java:50) fusionauth-fusionauth-1 | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) fusionauth-fusionauth-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) fusionauth-fusionauth-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) fusionauth-fusionauth-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) fusionauth-fusionauth-1 | at java.base/java.lang.Thread.run(Thread.java:833) fusionauth-fusionauth-1 | Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '>> '$.state' = 'Active'' at line 8 fusionauth-fusionauth-1 | at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121) fusionauth-fusionauth-1 | at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) fusionauth-fusionauth-1 | at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912) fusionauth-fusionauth-1 | at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354) fusionauth-fusionauth-1 | at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) fusionauth-fusionauth-1 | at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:333) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90) fusionauth-fusionauth-1 | at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) fusionauth-fusionauth-1 | ... 53 common frames omitted fusionauth-fusionauth-1 | 2024-02-13 02:47:44.565 AM ERROR io.fusionauth.app.primeframework.error.ExceptionExceptionHandler - An unhandled exception was thrown fusionauth-fusionauth-1 | org.apache.ibatis.exceptions.PersistenceException: fusionauth-fusionauth-1 | ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '>> '$.state' = 'Active'' at line 8 fusionauth-fusionauth-1 | ### The error may exist in io/fusionauth/api/domain/ApplicationMapper.xml fusionauth-fusionauth-1 | ### The error may involve defaultParameterMap fusionauth-fusionauth-1 | ### The error occurred while setting parameters fusionauth-fusionauth-1 | ### SQL: SELECT COUNT(*) FROM applications AS a WHERE LOWER(a.name) LIKE ? AND a.data ->> '$.state' = ? fusionauth-fusionauth-1 | ### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '>> '$.state' = 'Active'' at line 8 fusionauth-fusionauth-1 | at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) fusionauth-fusionauth-1 | at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:156) fusionauth-fusionauth-1 | at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) fusionauth-fusionauth-1 | at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) fusionauth-fusionauth-1 | at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75) fusionauth-fusionauth-1 | at jdk.internal.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) fusionauth-fusionauth-1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) fusionauth-fusionauth-1 | at java.base/java.lang.reflect.Method.invoke(Method.java:568) fusionauth-fusionauth-1 | at org.apache.ibatis.session.SqlSessionManager$SqlSessionInterceptor.invoke(SqlSessionManager.java:355) fusionauth-fusionauth-1 | at jdk.proxy2/jdk.proxy2.$Proxy99.selectOne(Unknown Source) fusionauth-fusionauth-1 | at org.apache.ibatis.session.SqlSessionManager.selectOne(SqlSessionManager.java:164) fusionauth-fusionauth-1 | at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:87) fusionauth-fusionauth-1 | at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:142) fusionauth-fusionauth-1 | at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) fusionauth-fusionauth-1 | at jdk.proxy2/jdk.proxy2.$Proxy118.retrieveCountByCriteria(Unknown Source) fusionauth-fusionauth-1 | at io.fusionauth.api.service.system.DefaultApplicationReaderService.search(DefaultApplicationReaderService.java:107) fusionauth-fusionauth-1 | at io.fusionauth.app.action.api.application.SearchAction.search(SearchAction.java:79) fusionauth-fusionauth-1 | at io.fusionauth.app.action.api.BaseSearchAPIAction.post(BaseSearchAPIAction.java:56) fusionauth-fusionauth-1 | at jdk.internal.reflect.GeneratedMethodAccessor67.invoke(Unknown Source) fusionauth-fusionauth-1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) fusionauth-fusionauth-1 | at java.base/java.lang.reflect.Method.invoke(Method.java:568) fusionauth-fusionauth-1 | at org.primeframework.mvc.util.ReflectionUtils.invoke(ReflectionUtils.java:443) fusionauth-fusionauth-1 | at org.primeframework.mvc.action.DefaultActionInvocationWorkflow.execute(DefaultActionInvocationWorkflow.java:77) fusionauth-fusionauth-1 | at org.primeframework.mvc.action.DefaultActionInvocationWorkflow.perform(DefaultActionInvocationWorkflow.java:60) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.message.DefaultMessageWorkflow.perform(DefaultMessageWorkflow.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.validation.DefaultValidationWorkflow.perform(DefaultValidationWorkflow.java:45) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.security.DefaultSecurityWorkflow.perform(DefaultSecurityWorkflow.java:79) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.parameter.DefaultPostParameterWorkflow.perform(DefaultPostParameterWorkflow.java:49) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.content.DefaultContentWorkflow.perform(DefaultContentWorkflow.java:74) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.parameter.DefaultParameterWorkflow.perform(DefaultParameterWorkflow.java:58) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.parameter.DefaultURIParameterWorkflow.perform(DefaultURIParameterWorkflow.java:92) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.scope.DefaultScopeRetrievalWorkflow.perform(DefaultScopeRetrievalWorkflow.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.action.DefaultActionMappingWorkflow.perform(DefaultActionMappingWorkflow.java:119) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.security.DefaultSavedRequestWorkflow.perform(DefaultSavedRequestWorkflow.java:65) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.cors.CORSRequestWorkflow.perform(CORSRequestWorkflow.java:65) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50) fusionauth-fusionauth-1 | at org.primeframework.mvc.workflow.DefaultMVCWorkflow.perform(DefaultMVCWorkflow.java:108) fusionauth-fusionauth-1 | at org.primeframework.mvc.PrimeMVCRequestHandler.handle(PrimeMVCRequestHandler.java:73) fusionauth-fusionauth-1 | at io.fusionauth.http.server.HTTPWorker.run(HTTPWorker.java:50) fusionauth-fusionauth-1 | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) fusionauth-fusionauth-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) fusionauth-fusionauth-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) fusionauth-fusionauth-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) fusionauth-fusionauth-1 | at java.base/java.lang.Thread.run(Thread.java:833) fusionauth-fusionauth-1 | Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '>> '$.state' = 'Active'' at line 8 fusionauth-fusionauth-1 | at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121) fusionauth-fusionauth-1 | at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) fusionauth-fusionauth-1 | at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912) fusionauth-fusionauth-1 | at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354) fusionauth-fusionauth-1 | at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) fusionauth-fusionauth-1 | at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:333) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) fusionauth-fusionauth-1 | at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90) fusionauth-fusionauth-1 | at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) fusionauth-fusionauth-1 | ... 53 common frames omitted
I think this because
-
ina.data ->> '$.state' = ?
.
Any way to fix this? -
@traperwaze said in Error getting list application due to sql error (mysql):
MariaDB server
I believe the issues is that we don't support MariaDB.
This is a known issue: https://github.com/FusionAuth/fusionauth-issues/issues/367
Do you see the same issue with a supported version of MySQL or PostgreSQL?
-
It seems like there's a SQL error preventing the application list from being retrieved.
-
I have similar issue with MySql 5.7 and create a issue report here : https://github.com/FusionAuth/fusionauth-issues/issues/2658
Apparently it seem there is typing error in Sql query that miss the table name but use the alias only and hence the error.