Channel credentials must be a ChannelCredentials object
scorp1k opened this issue · 9 comments
Error:
Error: TypeError: Channel credentials must be a ChannelCredentials object at new ChannelImplementation (E:\Development\Intrading\backend\graphql\node_modules\@grpc\grpc-js\build\src\channel.js:81:19) at createChannel (E:\Development\Intrading\backend\graphql\node_modules\nice-grpc\lib\client\channel.js:20:12) at Session.client (E:\Development\Intrading\backend\graphql\node_modules\@yandex-cloud\nodejs-sdk\dist\session.js:65:55) at new YandexCloudProvider (E:\Development\Intrading\backend\graphql\node_modules\@yandex-cloud\serverless-plugin\dist\provider\provider.js:71:38) at PluginManager.addPlugin (E:\Development\Intrading\backend\graphql\node_modules\serverless\lib\classes\plugin-manager.js:91:28) at new YandexCloudServerlessPlugin (E:\Development\Intrading\backend\graphql\node_modules\@yandex-cloud\serverless-plugin\dist\index.js:14:39) at PluginManager.addPlugin (E:\Development\Intrading\backend\graphql\node_modules\serverless\lib\classes\plugin-manager.js:91:28) at E:\Development\Intrading\backend\graphql\node_modules\serverless\lib\classes\plugin-manager.js:137:69 at Array.forEach (<anonymous>) at PluginManager.loadAllPlugins (E:\Development\Intrading\backend\graphql\node_modules\serverless\lib\classes\plugin-manager.js:137:44) at async Serverless.init (E:\Development\Intrading\backend\graphql\node_modules\serverless\lib\serverless.js:141:5) at async E:\Development\Intrading\backend\graphql\node_modules\serverless\scripts\serverless.js:591:7
serverless.yml
service: graphql
frameworkVersion: "3"
provider:
name: yandex-cloud
runtime: nodejs16
environment:
YC_IAM_TOKEN:
YC_CLOUD_ID:
YC_FOLDER_ID:
plugins:
- "@yandex-cloud/serverless-plugin"
- serverless-offline
package:
patterns:
- dist/**
- package.json
functions:
graphql:
handler: dist/index.handler
memorySize: 128
timeout: 5
account:
events:
- http:
path: graphql
method: post
cors: true
- http:
path: graphql
method: get
cors: true
package.json:
"dependencies": {
"apollo-server-core": "^3.7.0",
"apollo-server-lambda": "^3.7.0",
"graphql": "^16.5.0",
"knex": "^2.0.0",
"mssql": "^8.1.0",
"ydb-sdk": "^3.0.0"
},
"devDependencies": {
"@types/node": "^17.0.32",
"@yandex-cloud/serverless-plugin": "^1.0.2",
"nodemon": "^2.0.16",
"serverless": "^3.17.0",
"serverless-offline": "^8.5.0",
"typescript": "^4.6.4"
}
Try to update ydb-sdk
dependency to the latest version 3.1.0. It uses the latest version of the yandex-cloud SDK. Let me know if it solves the problem.
"dependencies": {
"apollo-server-core": "^3.7.0",
"apollo-server-lambda": "^3.7.0",
"graphql": "^16.5.0",
"knex": "^2.0.0",
"mssql": "^8.1.0",
"ydb-sdk": "^3.1.0"
},
"devDependencies": {
"@types/node": "^17.0.32",
"@yandex-cloud/serverless-plugin": "^1.0.2",
"nodemon": "^2.0.16",
"serverless": "^3.17.0",
"serverless-offline": "^8.5.0",
"typescript": "^4.6.4"
}
The error is still exist.
Could you provide an example code to replicate the error?
@scorp1k а еще можно вывод npm ls @yandex-cloud/nodejs-sdk
и node -v && npm -v
?
npm ls @yandex-cloud/nodejs-sdk
+-- @yandex-cloud/serverless-plugin@1.0.2
| `-- @yandex-cloud/nodejs-sdk@2.1.0
`-- ydb-sdk@3.1.0
`-- @yandex-cloud/nodejs-sdk@2.1.0 deduped
v16.13.2
8.1.2
Some changes in serverless.yml (but error exist):
service: graphql
frameworkVersion: "3"
provider:
name: yandex-cloud
runtime: ${file(./config.${opt:stage}.json):runtime}
environment:
YC_OAUTH_TOKEN: ""
YC_CLOUD_ID: ""
YC_FOLDER_ID: ""
YDB_ENDPOINT: ""
YDB_DATABASE: ""
plugins: ${file(./config.${opt:stage}.json):plugins}
package:
patterns:
- dist/**
- package.json
functions:
graphql:
handler: dist/index.handler
memorySize: 128
timeout: 5
account: admin
events:
- http:
path: graphql
method: any
cors: true
The error is solved by deleting package-lock.json and installing all packages from scratch.
The error is solved by deleting package-lock.json and installing all packages from scratch.
Awesome! Sounds like p-l.json was previously generated by older version of npm.