Describe the bug
Does not work a query when the schema has many the queries.
schema
"A datetime string with format 'Y-m-d H:i:s', e.g. '2018-01-01 13:00:00'."
scalar DateTime @scalar(class: "Nuwave\\Lighthouse\\Schema\\Types\\Scalars\\DateTime")
"A date string with format 'Y-m-d', e.g. '2011-05-23'."
scalar Date @scalar(class: "Nuwave\\Lighthouse\\Schema\\Types\\Scalars\\Date")
type Query {
users: [User!]! @paginate(type: "paginator" model: "App\\User")
user(id: ID @eq): User @find(model: "App\\User")
}
type User {
id: ID!
name: String!
email: String!
created_at: DateTime!
updated_at: DateTime!
}
type Company @model(class: "App\\Company") {
id: Int!
name: String!
users: [User!]!
@belongsToMany(
type: "paginator"
)
}
extend type Query {
companies: [Company!]!
@paginate(
type: "paginator"
model: "App\\Company"
)
companies1: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies2: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies3: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies4: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies5: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies6: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies7: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies8: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies9: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies10: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies11: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies12: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies13: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies14: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies15: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies16: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies17: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies18: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies19: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies20: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies21: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies22: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies23: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies24: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies25: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies26: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies27: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies28: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies29: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies30: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies31: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies32: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies33: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies34: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies35: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies36: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies37: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies38: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies39: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies40: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies41: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies42: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies43: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies44: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies45: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies46: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies47: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies48: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies49: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies50: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies51: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies52: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies53: [Company!]! @paginate(type: "paginator" model: "App\\Company")
companies54: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies55: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies56: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies57: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies58: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies59: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies60: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies61: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies62: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies63: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies64: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies65: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies66: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies67: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies68: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies69: [Company!]! @paginate(type: "paginator" model: "App\\Company")
# companies70: [Company!]! @paginate(type: "paginator" model: "App\\Company")
}
query
query {
companies(count: 3) {
data {
id
name
users(count: 2) {
data {
id
name
email
}
}
}
}
}
error message
Symfony\Component\Debug\Exception\FatalErrorException: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 140399557057464 bytes) in file /var/www/vendor/nuwave/lighthouse/src/Schema/Directives/Fields/PaginationManipulator.php on line 49
Stack trace:
1. Symfony\Component\Debug\Exception\FatalErrorException->() /var/www/vendor/nuwave/lighthouse/src/Schema/Directives/Fields/PaginationManipulator.php:49
When comment out "company54", the query can be executed.
When uncomment "companies55", "companies56", "companies57" and "companies58", JSON including "error" will be responded.
Click to expand
{
"errors": [
{
"debugMessage": "Argument 1 passed to Nuwave\\Lighthouse\\Schema\\Types\\PaginatorField::dataResolver() must implement interface Illuminate\\Contracts\\Pagination\\LengthAwarePaginator, instance of Illuminate\\Database\\Eloquent\\Collection given, called in /var/www/vendor/nuwave/lighthouse/src/Schema/Directives/Fields/FieldDirective.php on line 48",
"message": "Internal server error",
"extensions": {
"category": "internal"
},
"locations": [
{
"line": 7,
"column": 9
}
],
"path": [
"companies",
"data",
0,
"users",
"data"
],
"trace": [
{
"file": "/var/www/vendor/nuwave/lighthouse/src/Schema/Directives/Fields/FieldDirective.php",
"line": 48,
"call": "Nuwave\\Lighthouse\\Schema\\Types\\PaginatorField::dataResolver(instance of Illuminate\\Database\\Eloquent\\Collection(10), array(1), instance of Nuwave\\Lighthouse\\Schema\\Context, instance of GraphQL\\Type\\Definition\\ResolveInfo)"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 613,
"call": "Nuwave\\Lighthouse\\Schema\\Directives\\Fields\\FieldDirective::Nuwave\\Lighthouse\\Schema\\Directives\\Fields\\{closure}(instance of Illuminate\\Database\\Eloquent\\Collection(10), array(0), instance of Nuwave\\Lighthouse\\Schema\\Context, instance of GraphQL\\Type\\Definition\\ResolveInfo)"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 548,
"call": "GraphQL\\Executor\\ReferenceExecutor::resolveOrError(instance of GraphQL\\Type\\Definition\\FieldDefinition, instance of GraphQL\\Language\\AST\\FieldNode, instance of Closure, instance of Illuminate\\Database\\Eloquent\\Collection(10), instance of Nuwave\\Lighthouse\\Schema\\Context, instance of GraphQL\\Type\\Definition\\ResolveInfo)"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 1212,
"call": "GraphQL\\Executor\\ReferenceExecutor::resolveField(GraphQLType: UserPaginator, instance of Illuminate\\Database\\Eloquent\\Collection(10), instance of ArrayObject(1), array(5))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 1167,
"call": "GraphQL\\Executor\\ReferenceExecutor::executeFields(GraphQLType: UserPaginator, instance of Illuminate\\Database\\Eloquent\\Collection(10), array(4), instance of ArrayObject(1))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 1130,
"call": "GraphQL\\Executor\\ReferenceExecutor::collectAndExecuteSubfields(GraphQLType: UserPaginator, instance of ArrayObject(1), array(4), instance of Illuminate\\Database\\Eloquent\\Collection(10))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 829,
"call": "GraphQL\\Executor\\ReferenceExecutor::completeObjectValue(GraphQLType: UserPaginator, instance of ArrayObject(1), instance of GraphQL\\Type\\Definition\\ResolveInfo, array(4), instance of Illuminate\\Database\\Eloquent\\Collection(10))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 768,
"call": "GraphQL\\Executor\\ReferenceExecutor::completeValue(GraphQLType: UserPaginator, instance of ArrayObject(1), instance of GraphQL\\Type\\Definition\\ResolveInfo, array(4), instance of Illuminate\\Database\\Eloquent\\Collection(10))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/Promise/Adapter/SyncPromise.php",
"line": 126,
"call": "GraphQL\\Executor\\ReferenceExecutor::GraphQL\\Executor\\{closure}(instance of Illuminate\\Database\\Eloquent\\Collection(10))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/Promise/Adapter/SyncPromise.php",
"line": 48,
"call": "GraphQL\\Executor\\Promise\\Adapter\\SyncPromise::GraphQL\\Executor\\Promise\\Adapter\\{closure}()"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/Promise/Adapter/SyncPromiseAdapter.php",
"line": 154,
"call": "GraphQL\\Executor\\Promise\\Adapter\\SyncPromise::runQueue()"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/GraphQL.php",
"line": 101,
"call": "GraphQL\\Executor\\Promise\\Adapter\\SyncPromiseAdapter::wait(instance of GraphQL\\Executor\\Promise\\Promise)"
},
{
"file": "/var/www/vendor/nuwave/lighthouse/src/GraphQL.php",
"line": 166,
"call": "GraphQL\\GraphQL::executeQuery(instance of GraphQL\\Type\\Schema, '{\n companies(count: 3) {\n data {\n id\n name\n users(count: 2) {\n data {\n id\n name\n email\n }\n }\n }\n }\n}', null, instance of Nuwave\\Lighthouse\\Schema\\Context, array(0), null, null, array(29))"
},
{
"file": "/var/www/vendor/nuwave/lighthouse/src/Support/Http/Controllers/GraphQLController.php",
"line": 95,
"call": "Nuwave\\Lighthouse\\GraphQL::executeQuery('{\n companies(count: 3) {\n data {\n id\n name\n users(count: 2) {\n data {\n id\n name\n email\n }\n }\n }\n }\n}', instance of Nuwave\\Lighthouse\\Schema\\Context, array(0))"
},
{
"file": "/var/www/vendor/nuwave/lighthouse/src/Support/Http/Controllers/GraphQLController.php",
"line": 77,
"call": "Nuwave\\Lighthouse\\Support\\Http\\Controllers\\GraphQLController::execute(instance of Illuminate\\Http\\Request, instance of Nuwave\\Lighthouse\\Schema\\Context)"
},
{
"call": "Nuwave\\Lighthouse\\Support\\Http\\Controllers\\GraphQLController::query(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
"line": 54,
"function": "call_user_func_array(array(2), array(1))"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
"line": 45,
"call": "Illuminate\\Routing\\Controller::callAction('query', array(1))"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 219,
"call": "Illuminate\\Routing\\ControllerDispatcher::dispatch(instance of Illuminate\\Routing\\Route, instance of Nuwave\\Lighthouse\\Support\\Http\\Controllers\\GraphQLController, 'query')"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 176,
"call": "Illuminate\\Routing\\Route::runController()"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 680,
"call": "Illuminate\\Routing\\Route::run()"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 30,
"call": "Illuminate\\Routing\\Router::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 104,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 682,
"call": "Illuminate\\Pipeline\\Pipeline::then(instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 657,
"call": "Illuminate\\Routing\\Router::runRouteWithinStack(instance of Illuminate\\Routing\\Route, instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 623,
"call": "Illuminate\\Routing\\Router::runRoute(instance of Illuminate\\Http\\Request, instance of Illuminate\\Routing\\Route)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 612,
"call": "Illuminate\\Routing\\Router::dispatchToRoute(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 176,
"call": "Illuminate\\Routing\\Router::dispatch(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 30,
"call": "Illuminate\\Foundation\\Http\\Kernel::Illuminate\\Foundation\\Http\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/fideloper/proxy/src/TrustProxies.php",
"line": 57,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Fideloper\\Proxy\\TrustProxies::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
"line": 27,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php",
"line": 62,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 104,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 151,
"call": "Illuminate\\Pipeline\\Pipeline::then(instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 116,
"call": "Illuminate\\Foundation\\Http\\Kernel::sendRequestThroughRouter(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/public/index.php",
"line": 55,
"call": "Illuminate\\Foundation\\Http\\Kernel::handle(instance of Illuminate\\Http\\Request)"
}
]
},
{
"debugMessage": "Argument 1 passed to Nuwave\\Lighthouse\\Schema\\Types\\PaginatorField::dataResolver() must implement interface Illuminate\\Contracts\\Pagination\\LengthAwarePaginator, instance of Illuminate\\Database\\Eloquent\\Collection given, called in /var/www/vendor/nuwave/lighthouse/src/Schema/Directives/Fields/FieldDirective.php on line 48",
"message": "Internal server error",
"extensions": {
"category": "internal"
},
"locations": [
{
"line": 7,
"column": 9
}
],
"path": [
"companies",
"data",
1,
"users",
"data"
],
"trace": [
{
"file": "/var/www/vendor/nuwave/lighthouse/src/Schema/Directives/Fields/FieldDirective.php",
"line": 48,
"call": "Nuwave\\Lighthouse\\Schema\\Types\\PaginatorField::dataResolver(instance of Illuminate\\Database\\Eloquent\\Collection(10), array(1), instance of Nuwave\\Lighthouse\\Schema\\Context, instance of GraphQL\\Type\\Definition\\ResolveInfo)"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 613,
"call": "Nuwave\\Lighthouse\\Schema\\Directives\\Fields\\FieldDirective::Nuwave\\Lighthouse\\Schema\\Directives\\Fields\\{closure}(instance of Illuminate\\Database\\Eloquent\\Collection(10), array(0), instance of Nuwave\\Lighthouse\\Schema\\Context, instance of GraphQL\\Type\\Definition\\ResolveInfo)"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 548,
"call": "GraphQL\\Executor\\ReferenceExecutor::resolveOrError(instance of GraphQL\\Type\\Definition\\FieldDefinition, instance of GraphQL\\Language\\AST\\FieldNode, instance of Closure, instance of Illuminate\\Database\\Eloquent\\Collection(10), instance of Nuwave\\Lighthouse\\Schema\\Context, instance of GraphQL\\Type\\Definition\\ResolveInfo)"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 1212,
"call": "GraphQL\\Executor\\ReferenceExecutor::resolveField(GraphQLType: UserPaginator, instance of Illuminate\\Database\\Eloquent\\Collection(10), instance of ArrayObject(1), array(5))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 1167,
"call": "GraphQL\\Executor\\ReferenceExecutor::executeFields(GraphQLType: UserPaginator, instance of Illuminate\\Database\\Eloquent\\Collection(10), array(4), instance of ArrayObject(1))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 1130,
"call": "GraphQL\\Executor\\ReferenceExecutor::collectAndExecuteSubfields(GraphQLType: UserPaginator, instance of ArrayObject(1), array(4), instance of Illuminate\\Database\\Eloquent\\Collection(10))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 829,
"call": "GraphQL\\Executor\\ReferenceExecutor::completeObjectValue(GraphQLType: UserPaginator, instance of ArrayObject(1), instance of GraphQL\\Type\\Definition\\ResolveInfo, array(4), instance of Illuminate\\Database\\Eloquent\\Collection(10))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 768,
"call": "GraphQL\\Executor\\ReferenceExecutor::completeValue(GraphQLType: UserPaginator, instance of ArrayObject(1), instance of GraphQL\\Type\\Definition\\ResolveInfo, array(4), instance of Illuminate\\Database\\Eloquent\\Collection(10))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/Promise/Adapter/SyncPromise.php",
"line": 126,
"call": "GraphQL\\Executor\\ReferenceExecutor::GraphQL\\Executor\\{closure}(instance of Illuminate\\Database\\Eloquent\\Collection(10))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/Promise/Adapter/SyncPromise.php",
"line": 48,
"call": "GraphQL\\Executor\\Promise\\Adapter\\SyncPromise::GraphQL\\Executor\\Promise\\Adapter\\{closure}()"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/Promise/Adapter/SyncPromiseAdapter.php",
"line": 154,
"call": "GraphQL\\Executor\\Promise\\Adapter\\SyncPromise::runQueue()"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/GraphQL.php",
"line": 101,
"call": "GraphQL\\Executor\\Promise\\Adapter\\SyncPromiseAdapter::wait(instance of GraphQL\\Executor\\Promise\\Promise)"
},
{
"file": "/var/www/vendor/nuwave/lighthouse/src/GraphQL.php",
"line": 166,
"call": "GraphQL\\GraphQL::executeQuery(instance of GraphQL\\Type\\Schema, '{\n companies(count: 3) {\n data {\n id\n name\n users(count: 2) {\n data {\n id\n name\n email\n }\n }\n }\n }\n}', null, instance of Nuwave\\Lighthouse\\Schema\\Context, array(0), null, null, array(29))"
},
{
"file": "/var/www/vendor/nuwave/lighthouse/src/Support/Http/Controllers/GraphQLController.php",
"line": 95,
"call": "Nuwave\\Lighthouse\\GraphQL::executeQuery('{\n companies(count: 3) {\n data {\n id\n name\n users(count: 2) {\n data {\n id\n name\n email\n }\n }\n }\n }\n}', instance of Nuwave\\Lighthouse\\Schema\\Context, array(0))"
},
{
"file": "/var/www/vendor/nuwave/lighthouse/src/Support/Http/Controllers/GraphQLController.php",
"line": 77,
"call": "Nuwave\\Lighthouse\\Support\\Http\\Controllers\\GraphQLController::execute(instance of Illuminate\\Http\\Request, instance of Nuwave\\Lighthouse\\Schema\\Context)"
},
{
"call": "Nuwave\\Lighthouse\\Support\\Http\\Controllers\\GraphQLController::query(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
"line": 54,
"function": "call_user_func_array(array(2), array(1))"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
"line": 45,
"call": "Illuminate\\Routing\\Controller::callAction('query', array(1))"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 219,
"call": "Illuminate\\Routing\\ControllerDispatcher::dispatch(instance of Illuminate\\Routing\\Route, instance of Nuwave\\Lighthouse\\Support\\Http\\Controllers\\GraphQLController, 'query')"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 176,
"call": "Illuminate\\Routing\\Route::runController()"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 680,
"call": "Illuminate\\Routing\\Route::run()"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 30,
"call": "Illuminate\\Routing\\Router::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 104,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 682,
"call": "Illuminate\\Pipeline\\Pipeline::then(instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 657,
"call": "Illuminate\\Routing\\Router::runRouteWithinStack(instance of Illuminate\\Routing\\Route, instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 623,
"call": "Illuminate\\Routing\\Router::runRoute(instance of Illuminate\\Http\\Request, instance of Illuminate\\Routing\\Route)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 612,
"call": "Illuminate\\Routing\\Router::dispatchToRoute(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 176,
"call": "Illuminate\\Routing\\Router::dispatch(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 30,
"call": "Illuminate\\Foundation\\Http\\Kernel::Illuminate\\Foundation\\Http\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/fideloper/proxy/src/TrustProxies.php",
"line": 57,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Fideloper\\Proxy\\TrustProxies::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
"line": 27,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php",
"line": 62,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 104,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 151,
"call": "Illuminate\\Pipeline\\Pipeline::then(instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 116,
"call": "Illuminate\\Foundation\\Http\\Kernel::sendRequestThroughRouter(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/public/index.php",
"line": 55,
"call": "Illuminate\\Foundation\\Http\\Kernel::handle(instance of Illuminate\\Http\\Request)"
}
]
},
{
"debugMessage": "Argument 1 passed to Nuwave\\Lighthouse\\Schema\\Types\\PaginatorField::dataResolver() must implement interface Illuminate\\Contracts\\Pagination\\LengthAwarePaginator, instance of Illuminate\\Database\\Eloquent\\Collection given, called in /var/www/vendor/nuwave/lighthouse/src/Schema/Directives/Fields/FieldDirective.php on line 48",
"message": "Internal server error",
"extensions": {
"category": "internal"
},
"locations": [
{
"line": 7,
"column": 9
}
],
"path": [
"companies",
"data",
2,
"users",
"data"
],
"trace": [
{
"file": "/var/www/vendor/nuwave/lighthouse/src/Schema/Directives/Fields/FieldDirective.php",
"line": 48,
"call": "Nuwave\\Lighthouse\\Schema\\Types\\PaginatorField::dataResolver(instance of Illuminate\\Database\\Eloquent\\Collection(10), array(1), instance of Nuwave\\Lighthouse\\Schema\\Context, instance of GraphQL\\Type\\Definition\\ResolveInfo)"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 613,
"call": "Nuwave\\Lighthouse\\Schema\\Directives\\Fields\\FieldDirective::Nuwave\\Lighthouse\\Schema\\Directives\\Fields\\{closure}(instance of Illuminate\\Database\\Eloquent\\Collection(10), array(0), instance of Nuwave\\Lighthouse\\Schema\\Context, instance of GraphQL\\Type\\Definition\\ResolveInfo)"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 548,
"call": "GraphQL\\Executor\\ReferenceExecutor::resolveOrError(instance of GraphQL\\Type\\Definition\\FieldDefinition, instance of GraphQL\\Language\\AST\\FieldNode, instance of Closure, instance of Illuminate\\Database\\Eloquent\\Collection(10), instance of Nuwave\\Lighthouse\\Schema\\Context, instance of GraphQL\\Type\\Definition\\ResolveInfo)"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 1212,
"call": "GraphQL\\Executor\\ReferenceExecutor::resolveField(GraphQLType: UserPaginator, instance of Illuminate\\Database\\Eloquent\\Collection(10), instance of ArrayObject(1), array(5))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 1167,
"call": "GraphQL\\Executor\\ReferenceExecutor::executeFields(GraphQLType: UserPaginator, instance of Illuminate\\Database\\Eloquent\\Collection(10), array(4), instance of ArrayObject(1))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 1130,
"call": "GraphQL\\Executor\\ReferenceExecutor::collectAndExecuteSubfields(GraphQLType: UserPaginator, instance of ArrayObject(1), array(4), instance of Illuminate\\Database\\Eloquent\\Collection(10))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 829,
"call": "GraphQL\\Executor\\ReferenceExecutor::completeObjectValue(GraphQLType: UserPaginator, instance of ArrayObject(1), instance of GraphQL\\Type\\Definition\\ResolveInfo, array(4), instance of Illuminate\\Database\\Eloquent\\Collection(10))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 768,
"call": "GraphQL\\Executor\\ReferenceExecutor::completeValue(GraphQLType: UserPaginator, instance of ArrayObject(1), instance of GraphQL\\Type\\Definition\\ResolveInfo, array(4), instance of Illuminate\\Database\\Eloquent\\Collection(10))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/Promise/Adapter/SyncPromise.php",
"line": 126,
"call": "GraphQL\\Executor\\ReferenceExecutor::GraphQL\\Executor\\{closure}(instance of Illuminate\\Database\\Eloquent\\Collection(10))"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/Promise/Adapter/SyncPromise.php",
"line": 48,
"call": "GraphQL\\Executor\\Promise\\Adapter\\SyncPromise::GraphQL\\Executor\\Promise\\Adapter\\{closure}()"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/Executor/Promise/Adapter/SyncPromiseAdapter.php",
"line": 154,
"call": "GraphQL\\Executor\\Promise\\Adapter\\SyncPromise::runQueue()"
},
{
"file": "/var/www/vendor/webonyx/graphql-php/src/GraphQL.php",
"line": 101,
"call": "GraphQL\\Executor\\Promise\\Adapter\\SyncPromiseAdapter::wait(instance of GraphQL\\Executor\\Promise\\Promise)"
},
{
"file": "/var/www/vendor/nuwave/lighthouse/src/GraphQL.php",
"line": 166,
"call": "GraphQL\\GraphQL::executeQuery(instance of GraphQL\\Type\\Schema, '{\n companies(count: 3) {\n data {\n id\n name\n users(count: 2) {\n data {\n id\n name\n email\n }\n }\n }\n }\n}', null, instance of Nuwave\\Lighthouse\\Schema\\Context, array(0), null, null, array(29))"
},
{
"file": "/var/www/vendor/nuwave/lighthouse/src/Support/Http/Controllers/GraphQLController.php",
"line": 95,
"call": "Nuwave\\Lighthouse\\GraphQL::executeQuery('{\n companies(count: 3) {\n data {\n id\n name\n users(count: 2) {\n data {\n id\n name\n email\n }\n }\n }\n }\n}', instance of Nuwave\\Lighthouse\\Schema\\Context, array(0))"
},
{
"file": "/var/www/vendor/nuwave/lighthouse/src/Support/Http/Controllers/GraphQLController.php",
"line": 77,
"call": "Nuwave\\Lighthouse\\Support\\Http\\Controllers\\GraphQLController::execute(instance of Illuminate\\Http\\Request, instance of Nuwave\\Lighthouse\\Schema\\Context)"
},
{
"call": "Nuwave\\Lighthouse\\Support\\Http\\Controllers\\GraphQLController::query(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
"line": 54,
"function": "call_user_func_array(array(2), array(1))"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
"line": 45,
"call": "Illuminate\\Routing\\Controller::callAction('query', array(1))"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 219,
"call": "Illuminate\\Routing\\ControllerDispatcher::dispatch(instance of Illuminate\\Routing\\Route, instance of Nuwave\\Lighthouse\\Support\\Http\\Controllers\\GraphQLController, 'query')"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 176,
"call": "Illuminate\\Routing\\Route::runController()"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 680,
"call": "Illuminate\\Routing\\Route::run()"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 30,
"call": "Illuminate\\Routing\\Router::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 104,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 682,
"call": "Illuminate\\Pipeline\\Pipeline::then(instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 657,
"call": "Illuminate\\Routing\\Router::runRouteWithinStack(instance of Illuminate\\Routing\\Route, instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 623,
"call": "Illuminate\\Routing\\Router::runRoute(instance of Illuminate\\Http\\Request, instance of Illuminate\\Routing\\Route)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 612,
"call": "Illuminate\\Routing\\Router::dispatchToRoute(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 176,
"call": "Illuminate\\Routing\\Router::dispatch(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 30,
"call": "Illuminate\\Foundation\\Http\\Kernel::Illuminate\\Foundation\\Http\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/fideloper/proxy/src/TrustProxies.php",
"line": 57,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Fideloper\\Proxy\\TrustProxies::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
"line": 27,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php",
"line": 62,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"call": "Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode::handle(instance of Illuminate\\Http\\Request, instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"call": "Illuminate\\Pipeline\\Pipeline::Illuminate\\Pipeline\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 104,
"call": "Illuminate\\Routing\\Pipeline::Illuminate\\Routing\\{closure}(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 151,
"call": "Illuminate\\Pipeline\\Pipeline::then(instance of Closure)"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 116,
"call": "Illuminate\\Foundation\\Http\\Kernel::sendRequestThroughRouter(instance of Illuminate\\Http\\Request)"
},
{
"file": "/var/www/public/index.php",
"line": 55,
"call": "Illuminate\\Foundation\\Http\\Kernel::handle(instance of Illuminate\\Http\\Request)"
}
]
}
],
"data": {
"companies": {
"data": [
{
"id": "Q29tcGFueTox",
"name": "Clementina Sipes",
"users": null
},
{
"id": "Q29tcGFueToy",
"name": "Ms. Agnes Boehm",
"users": null
},
{
"id": "Q29tcGFueToz",
"name": "Joelle Yundt",
"users": null
}
]
}
}
}
Expected behavior
Query can be executed even if defined many queries.
Click to expand
{
"data": {
"companies": {
"data": [
{
"id": "Q29tcGFueTox",
"name": "Clementina Sipes",
"users": {
"data": [
{
"id": "1",
"name": "Mrs. Aurelie Rolfson",
"email": "[email protected]"
},
{
"id": "2",
"name": "Dr. Cassandra Armstrong",
"email": "[email protected]"
}
]
}
},
{
"id": "Q29tcGFueToy",
"name": "Ms. Agnes Boehm",
"users": {
"data": [
{
"id": "11",
"name": "Josiane Wehner Jr.",
"email": "[email protected]"
},
{
"id": "12",
"name": "Frederique Ernser IV",
"email": "[email protected]"
}
]
}
},
{
"id": "Q29tcGFueToz",
"name": "Joelle Yundt",
"users": {
"data": [
{
"id": "21",
"name": "Nathanael Gerhold",
"email": "[email protected]"
},
{
"id": "22",
"name": "Jake Volkman",
"email": "[email protected]"
}
]
}
}
]
}
}
}
Environment
Lighthouse Version: dev-master, 3.0-alpha.1
Laravel Version: 5.8
PHP Version: 7.2
MySQL Version: 5.7
model
Click to expand
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'id', 'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Company extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'id', 'name'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [];
public function users()
{
return $this->belongsToMany(User::class);
}
}
migration
Click to expand
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateCompaniesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('companies', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('companies');
}
}
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateCompanyUserTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('company_user', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('company_id');
$table->bigInteger('user_id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('company_user');
}
}
seeds
Click to expand
<?php
use App\User;
use Faker\Generator as Faker;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
class UsersTableSeeder extends Seeder
{
private $faker;
/**
* Run the database seeds.
*
* @param Faker $faker
* @return void
*/
public function run(Faker $faker)
{
for ($i = 1; $i <= 100; $i++) {
$user = User::find($i);
if ($user) {
continue;
}
User::create([
'email' => $faker->email,
'id' => $i,
'name' => $faker->name,
'password' => Hash::make('123456'),
]);
}
}
}
<?php
use App\Company;
use Faker\Generator as Faker;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
class CompaniesTableSeeder extends Seeder
{
private $faker;
/**
* Run the database seeds.
*
* @param Faker $faker
* @return void
*/
public function run(Faker $faker)
{
for ($i = 1; $i <= 10; $i++) {
$company = Company::find($i);
if ($company) {
$this->syncUser($company);
continue;
}
$company = Company::create([
'id' => $i,
'name' => $faker->name,
]);
$this->syncUser($company);
}
}
private function syncUser($company)
{
$startUser = (($company->id - 1) * 10) + 1;
$users = range($startUser, $startUser + 9);
$company->users()->sync($users);
}
}
Additional context
I admire this project!
You could just up your memory limit for now and it should work.
The AST manipulation with @paginate is pretty expensive. If you use the schema caching, it only happens once though.
@spawnia
Thank you for response.
I tried to change memory_limit to 12288M in my a product under development, but the issue was not solved.
How can I reduce memory usage?
So did it error out again with a different message, specifying a larger memory_limit?
@spawnia
I have tried only up to 12288M.
The response is as follows, "updated_at" changes depending on the value of memory_limit.
{
"errors": [
{
"debugMessage": "Found invalid pagination type: updated_at",
"message": "Internal server error",
"extensions": {
"category": "schema"
},
"locations": [
{
"line": 6,
"column": 7
}
],
"path": [
"companies",
"data",
0,
"users"
],
"trace": [
...
]
}
],
"data": {
"companies": {
"data": [
...
]
}
}
}
I try without manipulateSchema, now.
The response is as follows, "updated_at" changes depending on the value of memory_limit.
How exactly does it change?
@spawnia
If I do not change "memory_limit", the same error will occur.
I think that is wrong to focus on the value of "updated_at".
Because the message changes, but the place where the error occurs is the same.
I try without
manipulateSchema, now.
That attempt seems to be a success.
Even up to companies3000 will not fail, with memory_limit = 256M.
If I use PaginationManipulator::transformToPaginatedField() even in one place, it seems that memory usage will increase greatly.
I modified the code and schema for work around the issue as follows.
Code diff
src/Schema/Directives/Fields/PaginateDirective.php
public function manipulateSchema(FieldDefinitionNode $fieldDefinition, ObjectTypeDefinitionNode $parentType, DocumentAST $current): DocumentAST
{
+ $withoutTransform = $this->directiveArgValue('withoutTransform');
+ if ($withoutTransform) {
+ return $current;
+ }
return PaginationManipulator::transformToPaginatedField(
src/Schema/Directives/Fields/RelationDirective.php
public function manipulateSchema(FieldDefinitionNode $fieldDefinition, ObjectTypeDefinitionNode $parentType, DocumentAST $current): DocumentAST
{
+ $withoutTransform = $this->directiveArgValue('withoutTransform');
+ if ($withoutTransform) {
+ return $current;
+ }
$paginationType = $this->directiveArgValue('type');
Schema
"A datetime string with format 'Y-m-d H:i:s', e.g. '2018-01-01 13:00:00'."
scalar DateTime @scalar(class: "Nuwave\\Lighthouse\\Schema\\Types\\Scalars\\DateTime")
"A date string with format 'Y-m-d', e.g. '2011-05-23'."
scalar Date @scalar(class: "Nuwave\\Lighthouse\\Schema\\Types\\Scalars\\Date")
type Query {
users: UserPaginator @paginate(type: "paginator" model: "App\\User" withoutTransform: true)
user(id: ID @eq): User @find(model: "App\\User")
}
type User {
id: ID!
name: String!
email: String!
created_at: DateTime!
updated_at: DateTime!
}
type UserPaginator {
paginatorInfo: PaginatorInfo!
@field(resolver: "Nuwave\\Lighthouse\\Schema\\Types\\PaginatorField@paginatorInfoResolver")
data: [User!]!
@field(resolver: "Nuwave\\Lighthouse\\Schema\\Types\\PaginatorField@dataResolver")
}
type Company @model(class: "App\\Company") {
id: Int!
name: String!
users(count: Int = 10 page: Int = 1): UserPaginator
@belongsToMany(
withoutTransform: true
type: "paginator"
model: "App\\Company"
)
}
type CompanyPaginator {
paginatorInfo: PaginatorInfo!
@field(resolver: "Nuwave\\Lighthouse\\Schema\\Types\\PaginatorField@paginatorInfoResolver")
data: [Company!]!
@field(resolver: "Nuwave\\Lighthouse\\Schema\\Types\\PaginatorField@dataResolver")
}
extend type Query {
companies(count: Int = 10 page: Int = 1): CompanyPaginator
@paginate(type: "paginator" model: "App\\Company" withoutTransform: true)
companies1(count: Int = 10 page: Int = 1): CompanyPaginator @paginate(type: "paginator" model: "App\\Company" withoutTransform: true)
# ...
companies3000(count: Int = 10 page: Int = 1): CompanyPaginator @paginate(type: "paginator" model: "App\\Company" withoutTransform: true)
}
I just ran into the same issue. Increasing memory_limit does not help (verified with phpinfo() - memory has in fast been increased).
It seems that when your schema gets to a certain size, it just stops working. I get really random exceptions, but they are mostly thrown in PaginationManipulator.php聽line 49, however, the invalid type changes from time to time.
Eg:
DirectiveExceptionFound invalid pagination type: Middleware
--
in聽PaginationManipulator.php聽line 49
We should look for a more memory-efficient way to do schema manipulation. https://github.com/nuwave/lighthouse/issues/194 might be a good starting point.
+1
@atomita @alberthaff can you try checking out https://github.com/nuwave/lighthouse/pull/768 and see if it resolves your issues?
@spawnia
I went late, but I checked this in v4.0-alpha.3 and I thought it was fine.
thanks!
Most helpful comment
@atomita @alberthaff can you try checking out https://github.com/nuwave/lighthouse/pull/768 and see if it resolves your issues?