La mia ipotesi è che la risposta venga emessa come semplice binario che non è codificato in base64 (ancora un buffer) o sia una risposta compressa (gzip) che deve essere prima decompressa.
Difficile però individuare il problema senza vedere il codice.
AGGIORNAMENTO:
Sembra che manchino le intestazioni di risposta corrette.
Prova a impostare queste intestazioni prima di downloadStream.pipe(res)
:
res.setHeader('Content-disposition', 'attachment; filename=test.pdf');
res.set('Content-Type', 'application/pdf');