Небольшое изменение в коде должно заставить это работать, ошибка не в Axios, а в Express, пытающейся преобразовать всю (круговую) структуру ответа в Json.
Кроме того, я бы не отправлял обратно весь объект ошибки, поскольку он не сериализуется, лучше отправлять выбранные свойства, например, сообщение.
const express = require("express")
const app = express()
const axios = require('axios')
app.get("/" , (req , res) => {
axios.get("https://api.github.com/users/janbodnar")
.then(response => res.send({success : true , response: response.data}))
.catch(error => res.send({success : false , message: error.message}))
})
app.listen("3001",() => console.log("Server started"))