Prisma1: [^1.14.0] Internal server error with specific filter

Created on 29 Aug 2018  路  7Comments  路  Source: prisma/prisma1

Describe the bug
Whoops. Looks like an internal server error. Search your server logs

To Reproduce
https://github.com/oxy88/prisma_bug_report
this is my model
Shop -> Owner - One to One
Owner -> Fruit - One to Many
Fruit -> Color - One to One

type Shop {
  id: ID! @unique
  owner: Owner
}

type Owner {
  id: ID! @unique
  shop: Shop
  favoriteFruits: [Fruit!]!
}

type Fruit {
  id: ID! @unique
  owner: Owner
  color: Color
}

type Color {
  id: ID! @unique
  fruit: Fruit
}
  1. https://us1.prisma.sh/public-jadekoala-720/bug_report/dev
    2.
Steps to reproduce the behavior:
{
  shops(
    where: {
      owner: {
        favoriteFruits_some: {
          color: {
            id: "ANY_ID"
          }
        }
      }
    }
  ) {
    id
  }
}

Expected behavior
Works with prisma 1.13
Dosn't work with prisma 1.14 and 1.15

Screenshots

Versions (please complete the following information):

  • OS: [e.g. Windows 10, OS X High Sierra, Ubuntu 16.04]
  • prisma CLI: [e.g. prisma/1.9.0 (darwin-x64) node-v10.4.0]
  • Prisma Server: [e.g. 1.9.0]
  • graphql-cli, prisma-binding, graphql-yoga, etc. if applicable

Additional context
Add any other context about the problem here.

areconnectomysql bu1-repro-available

All 7 comments

Hmm, I seem to be hitting this too after upgrading from 1.12.2 to 1.14.2 with a similar schema and query. I rolled back to 1.12.2 and its working again. When I'm running 1.14.2 on Docker with my schema, this is the output of the docker logs:

java.sql.SQLSyntaxErrorException: (conn=4) Unknown column 'Device_Alias.id' in 'IN/ALL/ANY subquery'
    at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:163)
    at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:106)
    at org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:235)
    at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:224)
    at org.mariadb.jdbc.MariaDbPreparedStatementClient.execute(MariaDbPreparedStatementClient.java:159)
    at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeQuery(MariaDbPreparedStatementClient.java:173)
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
    at com.prisma.api.connector.jdbc.database.BuilderBase.$anonfun$queryToDBIO$1(BuilderBase.scala:51)
    at com.prisma.api.connector.jdbc.database.BuilderBase.$anonfun$jooqToDBIO$1(BuilderBase.scala:81)
    at slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:70)
    at slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:69)
    at slick.basic.BasicBackend$DatabaseDef$$anon$2.liftedTree1$1(BasicBackend.scala:275)
    at slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:275)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLException: Unknown column 'Device_Alias.id' in 'IN/ALL/ANY subquery'
Query is: select *
from `green@dev`.`Segment` as `Alias`
where `Alias`.`id` in (
  select `green@dev`.`_DeviceToSegment`.`B`
  from `green@dev`.`_DeviceToSegment`
  where `Device_Alias`.`id` in (
    select `green@dev`.`_DeviceToLocation`.`A`
    from `green@dev`.`_DeviceToLocation`
    where `green@dev`.`_DeviceToLocation`.`B` in (
      select `green@dev`.`_CompanyToLocation`.`B`
      from `green@dev`.`Company` as `Company_Location_Device_Alias`
        join `green@dev`.`_CompanyToLocation`
        on (
          `Company_Location_Device_Alias`.`id` = `green@dev`.`_CompanyToLocation`.`A`
          and `Company_Location_Device_Alias`.`id` = ?
        )
    )
  )
)
order by `Alias`.`id` asc, parameters ['cjjyt1zej7x8k0706b9jo1jkj']
    at org.mariadb.jdbc.internal.util.LogQueryTool.exceptionWithQuery(LogQueryTool.java:146)
    at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:217)
    at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:218)
    ... 13 more
{"key":"error/unhandled","requestId":"local:api:cjlfgxih1000e0858hyp4b7du","clientId":"green@dev","payload":{"exception":"java.sql.SQLSyntaxErrorException: (conn=4) Unknown column 'Device_Alias.id' in 'IN/ALL/ANY subquery'","query":"query segs {\n  segments(where: {device: {location: {company: {id: \"cjjyt1zej7x8k0706b9jo1jkj\"}}}}) {\n    id\n  }\n}\n\nquery cos {\n  companies(where: {id: \"cjjyt1zej7x8k0706b9jo1jkj\"}) {\n    locations {\n      devices {\n        segments {\n          id\n        }\n      }\n    }\n  }\n}\n","variables":"{}","code":"0","stack_trace":"org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:163)\\n org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:106)\\n org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:235)\\n org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:224)\\n org.mariadb.jdbc.MariaDbPreparedStatementClient.execute(MariaDbPreparedStatementClient.java:159)\\n org.mariadb.jdbc.MariaDbPreparedStatementClient.executeQuery(MariaDbPreparedStatementClient.java:173)\\n com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)\\n com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)\\n com.prisma.api.connector.jdbc.database.BuilderBase.$anonfun$queryToDBIO$1(BuilderBase.scala:51)\\n com.prisma.api.connector.jdbc.database.BuilderBase.$anonfun$jooqToDBIO$1(BuilderBase.scala:81)\\n slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:70)\\n slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:69)\\n slick.basic.BasicBackend$DatabaseDef$$anon$2.liftedTree1$1(BasicBackend.scala:275)\\n slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:275)\\n java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\n java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\n java.lang.Thread.run(Thread.java:748)","message":"(conn=4) Unknown column 'Device_Alias.id' in 'IN/ALL/ANY subquery'"}}
java.sql.SQLSyntaxErrorException: (conn=4) Unknown column 'Device_Alias.id' in 'IN/ALL/ANY subquery'
    at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:163)
    at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:106)
    at org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:235)
    at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:224)
    at org.mariadb.jdbc.MariaDbPreparedStatementClient.execute(MariaDbPreparedStatementClient.java:159)
    at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeQuery(MariaDbPreparedStatementClient.java:173)
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
    at com.prisma.api.connector.jdbc.database.BuilderBase.$anonfun$queryToDBIO$1(BuilderBase.scala:51)
    at com.prisma.api.connector.jdbc.database.BuilderBase.$anonfun$jooqToDBIO$1(BuilderBase.scala:81)
    at slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:70)
    at slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:69)
    at slick.basic.BasicBackend$DatabaseDef$$anon$2.liftedTree1$1(BasicBackend.scala:275)
    at slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:275)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLException: Unknown column 'Device_Alias.id' in 'IN/ALL/ANY subquery'
Query is: select *
from `green@dev`.`Segment` as `Alias`
where `Alias`.`id` in (
  select `green@dev`.`_DeviceToSegment`.`B`
  from `green@dev`.`_DeviceToSegment`
  where `Device_Alias`.`id` in (
    select `green@dev`.`_DeviceToLocation`.`A`
    from `green@dev`.`_DeviceToLocation`
    where `green@dev`.`_DeviceToLocation`.`B` in (
      select `green@dev`.`_CompanyToLocation`.`B`
      from `green@dev`.`Company` as `Company_Location_Device_Alias`
        join `green@dev`.`_CompanyToLocation`
        on (
          `Company_Location_Device_Alias`.`id` = `green@dev`.`_CompanyToLocation`.`A`
          and `Company_Location_Device_Alias`.`id` = ?
        )
    )
  )
)
order by `Alias`.`id` asc, parameters ['cjjyt1zej7x8k0706b9jo1jkj']
    at org.mariadb.jdbc.internal.util.LogQueryTool.exceptionWithQuery(LogQueryTool.java:146)
    at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:217)
    at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:218)
    ... 13 more
[Bugsnag - local / testing] Error report: com.bugsnag.Report@640ff4cf
[Metrics] No Prisma Cloud secret is set. Metrics collection is disabled.

Hey @oxy88 and @timchambers, are you using the Postgres or MySQL connector?

@marktani MySQL

@marktani MySQL

Thanks a lot for the additional information! I'm closing this as duplicate of https://github.com/prisma/prisma/issues/2899. We'll look into this soon!

@marktani #2971 is this one, what鈥檚 the original issue?

Sorry just updated my comment to the original issue 馃槃

Was this page helpful?
0 / 5 - 0 ratings

Related issues

schickling picture schickling  路  3Comments

Fi1osof picture Fi1osof  路  3Comments

AlessandroAnnini picture AlessandroAnnini  路  3Comments

dohomi picture dohomi  路  3Comments

ragnorc picture ragnorc  路  3Comments