I'm running into this error and I have no idea how to debug this. When I run it in dev mode by running yarn nx serve app, it works fine. It's when I build and deploy the prod docker version, I get this error:
(node:7) UnhandledPromiseRejectionWarning: Error: Schema must contain uniquely named
types but contains multiple types named "n".
2022-01-07T02:40:36.831174844Z at new GraphQLSchema (/app/node_modules/graphql/type/schema.js:194:15)
2022-01-07T02:40:36.831182778Z at GraphQLSchemaFactory.create (/app/node_modules/@nestjs/graphql/dist/schema-builder/graphql-schema.factory.js:39:24)
2022-01-07T02:40:36.831188556Z at GraphQLSchemaBuilder.buildSchema (/app/node_modules/@nestjs/graphql/dist/graphql-schema.builder.js:62:52)
2022-01-07T02:40:36.831193705Z at GraphQLSchemaBuilder.build (/app/node_modules/@nestjs/graphql/dist/graphql-schema.builder.js:24:31)
2022-01-07T02:40:36.831199146Z at GraphQLFactory.mergeOptions (/app/node_modules/@nestjs/graphql/dist/graphql.factory.js:33:69)
2022-01-07T02:40:36.831204965Z at GraphQLModule.onModuleInit (/app/node_modules/@nestjs/graphql/dist/graphql.module.js:92:57)
2022-01-07T02:40:36.831210371Z at processTicksAndRejections (internal/process/task_queues.js:95:5)
2022-01-07T02:40:36.831215501Z at async Object.callModuleInitHook (/app/node_modules/@nestjs/core/hooks/on-module-init.hook.js:51:9)
2022-01-07T02:40:36.831220535Z at async NestApplication.callInitHook (/app/node_modules/@nestjs/core/nest-application-context.js:179:13)
2022-01-07T02:40:36.831225861Z at async NestApplication.init (/app/node_modules/@nestjs/core/nest-application.js:96:9)
2022-01-07T02:40:36.831231456Z (Use `node --trace-warnings ...` to show where the warning was created)
(node:7) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
2022-01-07T02:40:36.831243405Z (node:7) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
I've looked all over other the codebase and I'm not seeing duplicate data. And it's not failing in dev mode and only in production mode as well. I've been stuck trying to figure this out for a while now. Any help would be greatly appreciated.
# ------------------------------------------------------
# THIS FILE WAS AUTOMATICALLY GENERATED (DO NOT MODIFY)
# ------------------------------------------------------
type AdditionalOptionModel {
activated: String
id: Float
notice_period_days: Float
product_identifier: String
scheduled_deactivation_date: String
}
type AdditionalOptionsServerResponseModel {
additional_options: [AdditionalOptionModel!]
}
input Address {
city: String
country: String
line1: String
line2: String
state: String
zip: String
}
type BackupModel {
built: Boolean
built_at: String
created: String
disk: DiskModel
id: Float
locked: Boolean
size: String
}
type BackupScheduleModel {
created: String
disk: DiskModel
duration: String
id: Float
period: String
rotation_period: Boolean
start_time: String
status: String
}
input ContactInput {
email: String!
message: String!
name: String!
phone: String!
}
type CreateServerResponseModel {
server: ServerDetailModel
servers: [ServerDetailModel!]
}
input CreateVpsServerInput {
addition_options: [String!]
hostname: String
hostnames: [String!]
location: String!
product: String!
recipe: Float
template: String
}
type DiskModel {
built: Boolean
id: Float
is_primary: Boolean
label: String
size: Float
}
type ExampleProductDataModel {
bandwidth: Float
cpu: Float
disk: Float
memory: Float
}
input GuideInput {
email: String!
name: String!
}
type IPAddressModel {
address: String
created: String
gateway: String
id: Float
is_ipv6: Boolean
type: String
}
type LinksModel {
pages: PagesModel
}
type LocationModel {
id: Float
identifier: String
is_under_maintenance: Boolean
name: String
on_hold: Boolean
}
type MetaModel {
pages: Float
total: Float
}
type Mutation {
addAdditionalOptions(apiKey: String!, options: [String!]!, serverId: Int!): Boolean!
addUser(user: User!): UserModel!
cancelSubscription(email: String!): Boolean!
changeHostname(apiKey: String!, hostname: String!, serverId: Int!): Boolean!
changeLabel(apiKey: String!, label: String!, serverId: Int!): Boolean!
changePassword(apiKey: String!, password: String!, serverId: Int!): Boolean!
createMailingSubscription(subscriber: SubscriberInput!): Boolean!
createServer(apiKey: String!, server: CreateVpsServerInput!): CreateServerResponseModel!
delete(apiKey: String!, serverId: Int!): Boolean!
deleteVpsConfig(id: Int!): Boolean!
disableAdditionalOptions(apiKey: String!, options: [String!]!, serverId: Int!): Boolean!
paymentIntent(paymentMethod: PaymentMethod!): String!
performCommand(apiKey: String!, command: String!, serverId: Int!): Boolean!
resize(apiKey: String!, product: String!, serverId: Int!): Boolean!
saveVpsConfig(config: VpsConfig!): VpsConfigModel!
send(contact: ContactInput!): Boolean!
sendGuide(guide: GuideInput!): Boolean!
subscribe(payment: Payment!): Boolean!
updateApiKey(email: String!): String!
updateProfile(user: User!): UserModel!
}
type PagesModel {
first: String
last: String
next: String
prev: String
}
input Payment {
address: Address
email: String!
name: String!
paymentIntent: String!
phone: String!
type: String!
}
input PaymentMethod {
amount: Float!
email: String!
name: String!
phone: String!
}
type ProductDetailsModel {
category: String
details: ExampleProductDataModel
id: String
identifier: String
is_sub_category: Boolean
name: String
parent_category: String
price: Float
state: String
type: ProductTypeModel
}
type ProductModel {
id: Float
identifier: String
name: String
price: Float
type: ProductTypeModel
}
type ProductTypeModel {
id: Float
identifier: String
name: String
}
type Query {
additionalOptions(apiKey: String!, serverId: Int!): AdditionalOptionsServerResponseModel!
getApiKey(email: String!): String!
getRecipes(apiKey: String!, page: Int): RecipesResponseModel!
getTemplateDetails(apiKey: String!, templateId: Int!): TemplateDetailsResponseModel!
getTemplates(apiKey: String!, group: String!): TemplatesResponseModel!
server(apiKey: String!, serverId: Int!): ServerDetailModel!
servers(apiKeys: [String!]!): [ServerDetailModel!]!
settings: SiteSettingsModel!
user(email: String!): UserModel!
validate(registration: Registration!): Boolean!
vpsConfigs(email: String!): [VpsConfigModel!]!
}
type RecipeModel {
created: String
id: Float
modified: String
name: String
os_type: String
recipe_type: RecipeTypeModel
script: String
script_type: String
}
type RecipeTypeModel {
id: Float
name: String
}
type RecipesResponseModel {
links: LinksModel
meta: MetaModel
recipes: [RecipeModel!]
}
input Registration {
email: String
key: Float
}
type ServerDetailModel {
bandwidth_total: Float
bandwidth_used: Float
cpu: Float
created: String
detailed_state: String
disabled: String
disk: Float
hostname: String
id: String
initial_root_password: String
ip_addresses: [IPAddressModel!]
label: String
location: LocationModel
locked: String
main_ip_address: String
memory: Float
name: String
product: ProductModel
scheduled_delete_date: String
state: String
template: TemplateModel
}
type SiteSettingsModel {
skipGuideForm: Boolean!
}
input SubscriberInput {
email: String!
name: String!
}
type TemplateDetailsModel {
group: String
locations: [LocationModel!]
name: String
price: Float
product_prices: [TemplateProductPriceModel!]
products: [ProductModel!]
system_name: String
}
type TemplateDetailsResponseModel {
template: TemplateDetailsModel
}
type TemplateModel {
group: String
id: String
name: String
price: String
product_prices: [TemplateProductPriceModel!]
system_name: String
}
type TemplateProductPriceModel {
price: Float
product: String
}
type TemplateTabModel {
id: Float
label: String
sort: String
}
type TemplatesResponseModel {
links: LinksModel
meta: MetaModel
templates: [TemplateModel!]
}
input User {
apiKey: String
email: String
firstName: String
id: String
lastName: String
originalEmail: String
password: String
phone: String
username: String
}
type UserModel {
apiKey: String
email: String
firstName: String
id: String
lastName: String
originalEmail: String
password: String
phone: String
username: String
}
input VpsConfig {
apiKey: String!
email: String
id: Float
name: String!
}
type VpsConfigModel {
apiKey: String!
email: String
id: Float
name: String!
}