Specific endpoint call fails by fetch of node v18
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- node.js, typescript
调研方向
Reproduce the request from the issue using Node v18.10.0, SDK 3.0.2, and the applications endpoint, then compare it with Node v16 and NODE_OPTIONS=--no-experimental-fetch. Start by tracing the SDK's fetch-based request path around GraphRequest.ts and GraphErrorHandler.ts. Done means fetching a specific application returns its properties under Node 18 without the Invalid language specified error.
由索引模型根据 Issue 内容生成。
描述
Bug Report
Prerequisites
- Can you reproduce the problem?
- Are you running the latest version?
- Are you reporting to the correct repository?
- Did you perform a cursory search?
For more information, see the CONTRIBUTING guide.
Description
The fetch of node v18 introduces a bug to msgraph-sdk-javascript.
This is simple code.
public async getApplications(): Promise<any> {
return await this.client
.api(`/applications`)
.get();
}
public async getApplication(): Promise<any> {
return await this.client
.api(`/applications/deadbeef-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)
.get();
}
This works well with node v16.
However, in v18 it outputs following error.
❯ npx ts-node script/nishida-sample.ts
https://graph.microsoft.com/v1.0/applications/deadbeef-xxxx-xxxx-xxxx-xxxxxxxxxxxx
(node:99543) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
/Users/kazufumi.nishida/code/_infra_others/graph-api-sandbox/node_modules/@microsoft/microsoft-graph-client/src/GraphError.ts:61
super(message || (baseError && baseError.message));
^
GraphError: Invalid language specified.
at new GraphError (/Users/kazufumi.nishida/code/_infra_others/graph-api-sandbox/node_modules/@microsoft/microsoft-graph-client/src/GraphError.ts:61:3)
at Function.GraphErrorHandler.constructErrorFromResponse (/Users/kazufumi.nishida/code/_infra_others/graph-api-sandbox/node_modules/@microsoft/microsoft-graph-client/src/GraphErrorHandler.ts:76:18)
at Function.<anonymous> (/Users/kazufumi.nishida/code/_infra_others/graph-api-sandbox/node_modules/@microsoft/microsoft-graph-client/src/GraphErrorHandler.ts:102:31)
at step (/Users/kazufumi.nishida/code/_infra_others/graph-api-sandbox/node_modules/tslib/tslib.js:144:27)
at Object.next (/Users/kazufumi.nishida/code/_infra_others/graph-api-sandbox/node_modules/tslib/tslib.js:125:57)
at /Users/kazufumi.nishida/code/_infra_others/graph-api-sandbox/node_modules/tslib/tslib.js:118:75
at new Promise (<anonymous>)
at __awaiter (/Users/kazufumi.nishida/code/_infra_others/graph-api-sandbox/node_modules/tslib/tslib.js:114:16)
at Function.GraphErrorHandler.getError (/Users/kazufumi.nishida/code/_infra_others/graph-api-sandbox/node_modules/@microsoft/microsoft-graph-client/lib/src/GraphErrorHandler.js:85:38)
at GraphRequest.<anonymous> (/Users/kazufumi.nishida/code/_infra_others/graph-api-sandbox/node_modules/@microsoft/microsoft-graph-client/src/GraphRequest.ts:391:55) {
statusCode: 400,
code: 'Request_BadRequest',
requestId: '329b85ba-dc7a-4712-b9b7-89e3907972c8',
date: 2022-10-11T18:44:18.000Z,
body: '{"code":"Request_BadRequest","message":"Invalid language specified.","innerError":{"date":"2022-10-12T03:44:18","request-id":"329b85ba-dc7a-4712-b9b7-89e3907972c8","client-request-id":"2729c80a-94c7-748f-31c2-fe56bb594a84"}}'
}
Also, it works once more with --no-experimental-fetch.
❯ NODE_OPTIONS=--no-experimental-fetch npx ts-node script/nishida-sample.ts
https://graph.microsoft.com/v1.0/applications/deadbeef-xxxx-xxxx-xxxx-xxxxxxxxxxxx
{"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#applications/$entity","id":"
...
}
Steps to Reproduce
- Use node v18
- Setup ordinally (https://github.com/microsoftgraph/msgraph-sdk-javascript/tree/099afbe343cd279f218036a83eb2831ad065f46d#getting-started)
- Access
v1.0/applications/deadbeef-xxxx-xxxx-xxxx-xxxxxxxxxxxx(use existing application id in your tenant)
Expected behavior: [What you expected to happen]
Return application property
Actual behavior: [What actually happened]
GraphError: Invalid language specified.
Additional Context
I was struggling 13 hours because new fetch of v18 works well except GET v1.0/applications/deadbeef-xxxx-xxxx-xxxx-xxxxxxxxxxxx endpoint. E.g, GET v1.0/applications endpoint (list applications) works correctly.
Usage Information
Request ID - Value of the requestId field if you are receiving a Graph API error response
329b85ba-dc7a-4712-b9b7-89e3907972c8
SDK Version - [SDK version you are using]
3.0.2
- Node (Check, if using Node version of SDK)
Node Version - [The version of Node you are using]
❯ node --version
v18.10.0
- Browser (Check, if using Browser version of SDK)
Browser Name - [The name of Browser that you are using for SDK]
Version - [The version of the browser you are using]
P.S.
Thank you good library. I'm happy to code with type informations.
- 主要语言
- TypeScript
- 星标
- 833
- 派生
- 240
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
microsoftgraph/msgraph-sdk-javascript 的其他 Issue
-
status:waiting-for-triage
难度 1/5 1 小时以内 新手友好度 62/100
-
Is anyone here? 未关闭
难度 4/5 3-5 天 新手友好度 25/100
microsoftgraph/msgraph-sdk-javascript#2005 · 1 个 reaction ·
-
status:waiting-for-triage
难度 5/5 一周以上 新手友好度 42/100
-
status:waiting-for-triage type:bug
难度 3/5 1-2 天 新手友好度 48/100
microsoftgraph/msgraph-sdk-javascript#1999 · 2 条评论 · 1 个 reaction ·
-
status:waiting-for-triage type:bug
难度 4/5 3-5 天 新手友好度 45/100
查看 microsoftgraph/msgraph-sdk-javascript 的全部 Issue
相似的 Issue
-
clawsweeper:linked-pr-open clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:message-loss issue-rating: 🦞 diamond lobster maturity:stable P2
难度 2/5 1-3 小时 新手友好度 88/100
-
难度 2/5 1-3 小时 新手友好度 84/100
Eynzof/Hermes-CN-Desktop#616 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
supermomonga/zcode-acp#24 ·
-
难度 2/5 1-3 小时 新手友好度 76/100
growthbook/growthbook#7100 ·
-
triage
难度 1/5 1-3 小时 新手友好度 88/100