МОжно при нажатии на ссылку вызвать функцию и получить файл с помощью fetch, далее превратить файл в blob и перейти на ссылку blob. В catch можно перехватить ошибки
const downloadBlobFile = (id, fileName) => {
fetch(`${API_URL}/files/download/${id}`)
.then(response => {
return response.blob()
})
.then(blob => {
const link = window.document.createElement("a");
link.href = window.URL.createObjectURL(blob);
link.download = fileName || 'file';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
})
.catch(() => {
//Обработка ошибок
});
}