prisma1
prisma1 copied to clipboard
prisma on json field with empty\invalid content throws internal error
Describe the bug Invalid json in json field not handled properly To Reproduce
type Consultancy {
id: ID! @id
rates: Json
}
const { prisma } = require('./src/model/generated/prisma-client')
async function main () {
const organizations = await prisma.consultancies()
console.log(organizations)
}
main().catch(e => console.error(e))
Expected behavior Properly handled error with a proper error text.
Screenshots Maybe empty string should be interpreted as empty json too
Versions (please complete the following information):
- Connector: Postgres
- Prisma Server: 1.31-beta5
- other dependencies: prisma-client 1.31-beta5
Additional context
{ Error: Whoops. Looks like an internal server error. Search your server logs for request ID: local:cjugveq4i002c0702agofn2s5
at BatchedGraphQLClient.<anonymous> (C:\Dev\PycharmProjects\otechieapi\node_modules\http-link-dataloader\dist\src\BatchedGraphQLClient.js:77:35)
at step (C:\Dev\PycharmProjects\otechieapi\node_modules\http-link-dataloader\dist\src\BatchedGraphQLClient.js:40:23)
at Object.next (C:\Dev\PycharmProjects\otechieapi\node_modules\http-link-dataloader\dist\src\BatchedGraphQLClient.js:21:53)
at fulfilled (C:\Dev\PycharmProjects\otechieapi\node_modules\http-link-dataloader\dist\src\BatchedGraphQLClient.js:12:58)
at processTicksAndRejections (internal/process/next_tick.js:81:5) result: { data: null, errors: [ [Object] ], status: 200 } }
{"key":"error/unhandled","requestId":"local:cjugupkw800200702tsmga9mu","clientId":"default$default","payload":{"exception":"com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input\n at [Source: (String)\"\"; line: 1, column: 0]","query":"{\n organizations {\n consultancy {\n rates\n }\n }\n}\n","variables":"{}","code":"0","stack_trace":"com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\\n com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4133)\\n com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3959)\\n com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2264)\\n play.api.libs.json.jackson.JacksonJson$.parseJsValue(JacksonJson.scala:235)\\n play.api.libs.json.StaticBinding$.parseJsValue(StaticBinding.scala:16)\\n play.api.libs.json.Json$.parse(Json.scala:171)\\n com.prisma.api.connector.jdbc.extensions.JdbcExtensionsValueClasses$ResultSetExtensions$.getJsonGCValue$extension(JdbcExtensions.scala:84)\\n com.prisma.api.connector.jdbc.extensions.JdbcExtensionsValueClasses$ResultSetExtensions$.getGcValue$extension(JdbcExtensions.scala:70)\\n com.prisma.api.connector.jdbc.database.ResultSetReaders.$anonfun$readPrismaNode$1(ResultSetReaders.scala:29)\\n scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)\\n scala.collection.Iterator.foreach(Iterator.scala:937)\\n scala.collection.Iterator.foreach$(Iterator.scala:937)\\n scala.collection.AbstractIterator.foreach(Iterator.scala:1425)\\n scala.collection.IterableLike.foreach(IterableLike.scala:70)\\n scala.collection.IterableLike.foreach$(IterableLike.scala:69)\\n scala.collection.AbstractIterable.foreach(Iterable.scala:54)\\n scala.collection.TraversableLike.map(TraversableLike.scala:233)\\n scala.collection.TraversableLike.map$(TraversableLike.scala:226)\\n scala.collection.AbstractTraversable.map(Traversable.scala:104)\\n com.prisma.api.connector.jdbc.database.ResultSetReaders.readPrismaNode(ResultSetReaders.scala:29)\\n com.prisma.api.connector.jdbc.database.ResultSetReaders.$anonfun$readsPrismaNode$1(ResultSetReaders.scala:25)\\n com.prisma.slick.ReadsResultSet$$anon$1.read(ResultSetExtensions.scala:16)\\n com.prisma.slick.ResultSetExtensionsValueClasses$ResultSetExtensions2$.readWith$extension(ResultSetExtensions.scala:31)\\n com.prisma.api.connector.jdbc.database.NodeManyQueries.$anonfun$getNodes$2(NodeManyQueries.scala:20)\\n com.prisma.connector.shared.jdbc.SharedSlickExtensions.$anonfun$queryToDBIO$1(SharedSlickExtensions.scala:18)\\n com.prisma.connector.shared.jdbc.SharedSlickExtensions.$anonfun$jooqToDBIO$1(SharedSlickExtensions.scala:56)\\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":"No content to map due to end-of-input\n at [Source: (String)\"\"; line: 1, column: 0]"}}
com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
at [Source: (String)""; line: 1, column: 0]
at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)
at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4133)
at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3959)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2264)
at play.api.libs.json.jackson.JacksonJson$.parseJsValue(JacksonJson.scala:235)
at play.api.libs.json.StaticBinding$.parseJsValue(StaticBinding.scala:16)
at play.api.libs.json.Json$.parse(Json.scala:171)
at com.prisma.api.connector.jdbc.extensions.JdbcExtensionsValueClasses$ResultSetExtensions$.getJsonGCValue$extension(JdbcExtensions.scala:84)
at com.prisma.api.connector.jdbc.extensions.JdbcExtensionsValueClasses$ResultSetExtensions$.getGcValue$extension(JdbcExtensions.scala:70)
at com.prisma.api.connector.jdbc.database.ResultSetReaders.$anonfun$readPrismaNode$1(ResultSetReaders.scala:29)
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
at scala.collection.Iterator.foreach(Iterator.scala:937)
at scala.collection.Iterator.foreach$(Iterator.scala:937)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1425)
at scala.collection.IterableLike.foreach(IterableLike.scala:70)
at scala.collection.IterableLike.foreach$(IterableLike.scala:69)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at scala.collection.TraversableLike.map(TraversableLike.scala:233)
at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
at scala.collection.AbstractTraversable.map(Traversable.scala:104)
at com.prisma.api.connector.jdbc.database.ResultSetReaders.readPrismaNode(ResultSetReaders.scala:29)
at com.prisma.api.connector.jdbc.database.ResultSetReaders.$anonfun$readsPrismaNode$1(ResultSetReaders.scala:25)
at com.prisma.slick.ReadsResultSet$$anon$1.read(ResultSetExtensions.scala:16)
at com.prisma.slick.ResultSetExtensionsValueClasses$ResultSetExtensions2$.readWith$extension(ResultSetExtensions.scala:31)
at com.prisma.api.connector.jdbc.database.NodeManyQueries.$anonfun$getNodes$2(NodeManyQueries.scala:20)
at com.prisma.connector.shared.jdbc.SharedSlickExtensions.$anonfun$queryToDBIO$1(SharedSlickExtensions.scala:18)
at com.prisma.connector.shared.jdbc.SharedSlickExtensions.$anonfun$jooqToDBIO$1(SharedSlickExtensions.scala:56)
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)