1

I have an issue with using incremental static generation with Nextjs framework, I am using getStaticPath and getStaticProps As the following code

export const getStaticPaths: GetStaticPaths = async () => {
const paths = [{ params: { username: 'kelly' } }];

return {
    paths,
    fallback: true
};
};

export const getStaticProps: GetStaticProps = async (context: any) => {
    const username = context.params.username;
    /* api call getUserData */
    const userData = await getUserData(username);
    if (!userData || userData.images.length < 1) {
        return {
            notFound: true
        };
    }

    return {
        props: {
            userData
        },
        revalidate: 300
    };
};

Everything works fine as expected
if i update the user endpoint api, the user page gets updated , and using fallback = true, the page is rebuilt every 300s , so all is good here.

the problems begin if i delete a user ( example user1) , (in my case when the api endpoint is rendering no data for user1). The page that has the path (/myapp/user1 ) should give a 404 as expected in the code instead of that -I am getting a 404 page for only 20min, then the 404 page is replaced by a cached page (seems to be the latest static page that nexts has built for this path)

it looks like for Nextjs, as long as a static page has already been built for a given path myapp/user1, if later this page no longer exists (404 or redirect404), Nextjs will serve the page it has in the cache (the latest page that was built),

The only way I found to remove the static page and get the 404 for the page, is to redeploy (to perform a rebuilt npm run build)

Please help: -Is there an option to change this cache config in nextjs, if yes how and where / -Is it a lack of option for Nextjs when using Incremental static generation ? -also for unknown reason it works fine on stage but on production it s not working.

juliomalves
  • 42,130
  • 20
  • 150
  • 146
Hichem exs
  • 11
  • 1
  • 2
    Does this answer your question: [Next.js ISR page not being deleted after deleting it in CMS](https://stackoverflow.com/questions/67864802/next-js-isr-page-not-being-deleted-after-deleting-it-in-cms)? Make sure to also return `revalidate: 300` when returning `notFound: true`. – juliomalves Oct 18 '21 at 17:09
  • when using notFound: true, i return revalidate:300 , but it doesnt work, page are not deleted after being deleted from (database, cms , etc...) – Hichem exs Oct 19 '21 at 13:14

0 Answers0