It’s solved for now, but I don’t think this is the best approach. What I’ve done is create a custom middleware to check the ctx.path
async (ctx, next) => {
if (ctx.path !== '/_ah/warmup') return await next()
// Handle warmup logic here
ctx.status = 200;
ctx.body = 'OK';
};