TypeError when Downloading to PDF in Azure App Service: undici failure
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- azure, node.js, typescript
Research direction
Start with conversionDownloadToPdf and the @microsoft/microsoft-graph-client request using ResponseType.RAW, then compare the local and Azure App Service environments on Node v18.19.1. Inspect the full undici error cause and determine whether ProxyAgent or an officially documented workaround addresses the failure; done means the PDF download works in Azure or the limitation is clearly documented.
Written by the indexing model from the issue text.
Description
Download to PDF Not Working in Azure App Service
I'm running an express app using Node v18.19.1. My endpoint does the following:
- Saves a document to a sharepoint folder
- Performs the download/convert to pdf
- Saves the downloaded pdf to a Mongo db.
- Deletes the original file
Steps 1, 2, and 4 use the @microsoft/microsoft-graph-client@3.0.7 package. This all works locally. However, when I deploy it to my Azure App Services (running Windows and Node v18.19.1), it breaks at step 2 with the following error:
TypeError: fetch failed at node:internal/deps/undici/undici:12625:11
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
The conversion download method:
const conversionDownloadToPdf = async (fileItemId) => {
try {
console.log(chalk.blue(`Attempting to downloaded file (${fileItemId})...`));
const response = await client.api(`drives/${process.env.DRIVE_ID}/items/${fileItemId}/content?format=pdf`)
.responseType(ResponseType.RAW) // ensure raw stream
.get();
const stream = await apiRequest.responseType(ResponseType.RAW).get(); // BREAKS HERE
console.log(chalk.blue(`Stream downloaded. Streaming to buffer...`));
return await toBuffer(stream);
} catch (error) {
console.error(chalk.red(`Full error details:`));
console.error(chalk.red(`Message: ${error.message}`));
console.error(chalk.red(`Status Code: ${error.statusCode}`));
console.error(chalk.red(`Code: ${error.code}`));
console.error(chalk.red(`Stack: ${error.stack}`));
// Log the cause if available (undici errors have this)
if (error.cause)
console.error(chalk.red(`Cause: ${JSON.stringify(error.cause, null, 2)}`));
throw error;
}
}
Do I need to use that ProxyAgent? Do you have official docs on a workaround?
- Dominant language
- TypeScript
- Stars
- 833
- Forks
- 240
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoftgraph/msgraph-sdk-javascript
-
status:waiting-for-triage
Difficulty 1/5 Under an hour Newbie friendliness 62/100
-
Is anyone here? Open
Difficulty 4/5 3-5 days Newbie friendliness 25/100
microsoftgraph/msgraph-sdk-javascript#2005 · 1 reaction ·
-
Is it really correct that the Javascript version of the graph SDK doesn't offer typed requests? Openstatus:waiting-for-triage
Difficulty 5/5 Over a week Newbie friendliness 42/100
-
status:waiting-for-triage type:bug
Difficulty 3/5 1-2 days Newbie friendliness 48/100
microsoftgraph/msgraph-sdk-javascript#1999 · 2 comments · 1 reaction ·
-
status:waiting-for-triage type:bug
Difficulty 4/5 3-5 days Newbie friendliness 45/100
All issues in microsoftgraph/msgraph-sdk-javascript
Similar issues
-
comp/desktop P3 type/bug
Difficulty 1/5 Under an hour Newbie friendliness 92/100
NousResearch/hermes-agent#118866 ·
-
Browser Waiting for: Product Owner
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
getsentry/sentry-javascript#24577 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
agilepathway/label-checker#640 ·
-
Plugin stuck at "loading" on DSH 0.1.6-alpha.2 — turnTail list slot registration missing options.id Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
chrisparsons83/flexspotff#153 ·