Azure: INFO - Waiting for response to warmup request for container ... Elapsed time = x sec

Viewed 32

My app fails on prod and can't find a way how to fix. It works on another environments. enter image description here Some logs from the console:

2022-08-22T23:56:05.760Z INFO  - Waiting for response to warmup request for container projectprod-fe_0_fd84e. Elapsed time = [225.2643051] sec
2022-08-22T23:56:35.818Z ERROR - Container projectprodfe_0_fd84e for site teamgullitpreview-fe did not start within expected time limit. Elapsed time = 255.322965 sec

It is next.js app and I create middlewares for it.

const next = require('next'); const { parse } = require('url');

nextMiddleware

async function nextMiddleware(dev = false) {
    const app = next({ dev });
    const handle = app.getRequestHandler();
    await app.prepare();
    return function nextHandler(req, res) {
        const parsedUrl = parse(req.url, true);
        handle(req, res, parsedUrl);
    };
}

redirectMiddleware

const path = require('path');
const fs = require('fs');

const staticFiles = ['_next', '/', 'images', 'api'];

const getRedirect = async (srcPath) => {
    try {
        const url = `${process.env.NEXT_PUBLIC_apiUrl}/redirect?path=${srcPath}`;
        const response = await fetch(url);
        const json = await response.json();
        return json;
    } catch (e) {
        throw new Error(e);
    }
};
function redirecter(pathname) {
    return new Promise((resolve, reject) => {
        const pathParts = pathname.split('/');
        if (staticFiles.indexOf(pathParts[1]) > -1) {
            resolve({
                shouldRedirect: false,
                redirectData: {},
            });
        } else {
            const possibleFile = `${path.resolve(
                __dirname,
                '../../public',
            )}${pathname}`;
            if (fs.existsSync(possibleFile)) {
                resolve({
                    shouldRedirect: false,
                    redirectData: {},
                });
            } else {
                getRedirect(pathname)
                    .then((result) => {
                        resolve({
                            shouldRedirect: true,
                            redirectData: result,
                        });
                    })
                    .catch((e) => {
                        reject(e);
                    });
            }
        }
    });
}

async function redirectMiddleware(req, res, next) {
    const parsedUrl = parse(req.url, true);
    const { pathname } = parsedUrl;
    try {
        const { shouldRedirect, redirectData } = await redirecter(pathname);
        if (shouldRedirect && redirectData.destination) {
            const redirectUri = `${process.env.NEXT_PUBLIC_hostname}${
                redirectData.type ? redirectData.type : ''
            }${redirectData.destination}`;
            res.writeHead(redirectData.statusCode[0], {
                Location: redirectUri,
            });
            res.end();
        }
    } catch (e) {
        next();
    } finally {
        next();
    }
}

What I do wrong in this file or whenever?

const http = require('http');
const express = require('express');
const redirectMiddleware = require('./src/server/redirectMiddleware');
const nextMiddleware = require('./src/server/nextMiddleware');

const port = process.env.PORT || 3000;

async function bootstrap() {
    const isDevelopment = process.argv.includes('--dev');
    const app = express();

    app.use(await redirectMiddleware);
    app.use(await nextMiddleware(isDevelopment));

    const server = http.createServer(app);
    server.listen(port, (err) => {
        if (err) throw err;
        console.log(`> Ready on http://localhost:${port}`);
    });
}

bootstrap().catch((err) => {
    console.error('something went wrong booting up the server.');
    console.error(err);
    process.exit(1);
});

I have no idea what's wrong and how to debugg it. Is anyone who experienced it before?

0 Answers
Related